Javascript &引用;[对象窗口]”;在随机定位div时以html显示
我在这里建立一个网站,我试图在我制作的标题背景图像上产生一个非常酷的效果 我想要的是随机点出现,然后再消失(像网络ping)点缀在地图上,好像它在监视什么东西 我制作了这段代码,它几乎可以工作,但是没有生成最高值,而是打印Javascript &引用;[对象窗口]”;在随机定位div时以html显示,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我在这里建立一个网站,我试图在我制作的标题背景图像上产生一个非常酷的效果 我想要的是随机点出现,然后再消失(像网络ping)点缀在地图上,好像它在监视什么东西 我制作了这段代码,它几乎可以工作,但是没有生成最高值,而是打印 <h1>Top:</h1>[object Window]". Top:[对象窗口]”。 发生了一些非常奇怪的事情,我搞不清楚是什么。下面是代码: function placeimage(){ $div = $('header');
<h1>Top:</h1>[object Window]".
Top:[对象窗口]”。
发生了一些非常奇怪的事情,我搞不清楚是什么。下面是代码:
function placeimage(){
$div = $('header');
$body = $('body');
left = Math.floor(Math.random()*parseInt($div.innerWidth()));
top = Math.floor(Math.random()*parseInt($div.outerHeight()));
$div.append('<h1>Top:'+top+'</h1><img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG" alt="image" id="ping" onclick="doclick(this.id);" style="display: none; position: absolute;">');
$img = $('#ping');
$img.css('left',left+'px');
$img.css('top',top+'px');
$img.show();
setTimeout(function(){hideimg();}, 5000);
setTimeout(function(){placeimage();}, 3000);
}
function hideimg() {
$img.remove();
}
placeimage();
函数placeimage(){
$div=$('header');
$body=$('body');
左=Math.floor(Math.random()*parseInt($div.innerWidth());
top=Math.floor(Math.random()*parseInt($div.outerHeight());
$div.append('Top:'+Top+'');
$img=$('ping');
$img.css('left',left+'px');
$img.css('top',top+'px');
$img.show();
setTimeout(函数(){hideimg();},5000);
setTimeout(函数(){placeimage();},3000);
}
函数hideimg(){
$img.remove();
}
placeimage();
有人能帮我吗
PS:使用的图像只是为了测试它!因为
top
未声明为var top
您正在尝试将window.top连接到一个字符串,该字符串将解析为对象窗口的字符串表示形式
使用var
声明所有变量,并使用适当的串联运算符,您应该可以看到问题消失了
当您在JavaScript中声明变量而不使用var
时,窗口
对象获取变量的作用域。当您使用var
在函数中声明变量时,该变量现在仅对函数可见
您绝对需要使用var
在JavaScript中声明所有变量,否则您的程序将变得噩梦般
例如:
使用var
$div.append('Top:',Top+'
–您确定要在那里使用逗号吗…?真的,我根本不需要打印部分,我用它来表示.innerHeight变量没有生成值。用+替换逗号修复了:)的格式谢谢你的提醒,但我恐怕我真的不明白。你能做一个,我可以复制它吗?谢谢!我现在明白了!非常感谢,你让它为我工作了!
function foo() {
x = 5;
setTimeout(function () {
alert(x);
}, 5000);
}
function bar() {
x = 'I change window.x this includes the one in the foo function';
}
foo(); // in 5 seconds alert will read "I change window.x this includes the one in the foo function"
bar();