我想制作自动工作的简单幻灯片(无按钮)。图像应该从下到上滑动。我已经在代码之后解释了这些事情。JavaScript Slideshow(没有jQuery或任何其他库)
HTML:
<ul id="imgSlider1">
There are images here in <li> tags
</ul>
的JavaScript:
window.onload = initAll;
function initAll(){
var img = document.getElementById("imgSlider1");
if((parseInt(window.getComputedStyle(img).top)) == -1160){
img.style.top = 290 +"px";}
var i = parseInt(window.getComputedStyle(img).top);
var j = i-290;
slideIt(i, j, img);
}
function slideIt(initTop, finalTop, target){
if(initTop == finalTop){
window.setTimeout(initAll, 10000);
}
target.style.top = (initTop - 1)+"px";
var presentTop = parseInt(window.getComputedStyle(target).top);
window.setTimeout(function(){ slideIt(presentTop, finalTop, this)},20)
}
我试图在这里做: 的 'initAll()' 函数获取 '顶' 列表和 '我'被分配该值。变量'j' 被分配'i-290'(因为290px是每个图像的高度)。现在'我','j'和目标对象(这里是图像列表)被传递给下一个函数'slideIt()'。 'slideIt()'函数每次从目标对象的'顶部'减去'1px',并被一遍又一遍地调用,直到'top'等于'finalTop'(这是赋值给'j'的值)。当这个条件满足时,'initAll'函数在10秒后被回调。
现在,为什么不是这个代码工作?
控制台说: “未定义无法设置属性 '顶'”
',20'是在错误的地方。 – SLaks 2013-05-12 12:51:46
@SLaks我改正了它。但它仍然在不断移动。它应该停止10秒,当图像变化 – 2013-05-12 12:59:55