【发布时间】:2015-04-06 14:20:54
【问题描述】:
我无法让我的 javascript 工作。它应该在“用户”向下滚动 2 像素但没有任何反应时运行。当我删除滚动功能时,一切正常,所以我写错了什么,或者为什么它不工作?
HTML
<div id="report"></div>
<div style="position:relative;">
<img id="myImage" src="test.svg" style="margin-left:200px; width:100px;" />
</div>
Javascript
(window).scroll(function() {
if($(window).scrollTop() > 2) {
var animate, left=0, imgObj=null, report = document.getElementById('report'), i=0;
function init(){
imgObj = document.getElementById('myImage');
imgObj.style.position= 'absolute';
imgObj.style.top = '240px';
imgObj.style.left = '-300px';
imgObj.style.visibility='hidden';
moveRight();
}
function moveRight(){
left = parseInt(imgObj.style.left, 10);
if (10 >= left) {
imgObj.style.left = (left + 5) + 'px';
imgObj.style.visibility='visible';
animate = setTimeout(function(){moveRight();},20); // call moveRight in 20msec
//stopanimate = setTimeout(moveRight,20);
} else {
stop();
}
//f();
}
function stop(){
clearTimeout(animate);
}
// starting
window.onload = function() {init();};
}
});
【问题讨论】:
-
我建议用这个创建一个fiddle。我还想知道您是否需要在
(window).scroll之外拥有函数,以便可以正确调用init()函数。 (我也不同意投反对票的人。这个问题可以通过反馈轻松解决)
标签: javascript html