Javascript递归问题
|
我正在尝试编写一个将在图像数组之间更改的函数。我的想法对我来说是有意义的,但是当我按下面的方式运行它时,第一个图像加载,然后第二个图像在某个点加载(透明度不变),然后什么也没有发生。这是JavaScript代码:
var image1 = new Image();var image2 = new Image(); var image3 = new Image();
image1.src = \"images/website6.jpg\"; image2.src = \"images/website7.jpg\"; image3.src = \"images/sunset.jpg\";
var images = new Array(\"images/website6.jpg\",\"images/website7.jpg\",\"images/sunset.jpg\");
/*document.slide.style.opacity = 1;
document.slide.stylebg.opacity = 0;*/
setTimeout(function() { fade(images,0); }, 2000);
function delay(arr,num)
{
document.slide.src = arr[num % 3];
document.slide.style.opacity = 1;
document.slidebg.style.opacity = 0;
document.slidebg.src = arr[(num+1)%3];
var number = num + 1;
setTimeout(function() { fade(arr,number); }, 2000);
}
function fade(arr,num)
{
/*alert(\'fadebefore \' + (document.slide.style.opacity).toString())*/
document.slide.style.opacity -= 0.1
/*alert(\'fade\')*/
document.slide.stylebg.opacity += 0.1
if (document.slide.style.opacity == 0)
{
setTimeout(function() { delay(arr,num); }, 150);
}
else
{
setTimeout(function() { fade(arr,num); }, 1500);
}
}
HTML很简单。我有两节课; style
和stylebg
。 style
坐在stylebg
前面,然后我根据需要更改不透明度和图像。 JavaScript对我来说似乎合乎逻辑,但无法按预期工作。另外值得注意的是有3条评论。第一条评论(第3-4行)试图将不透明度设置为开始时的状态。但是,如果我这样做,那么我得到的进展将比上面还要少:加载第一张图像,然后什么也没有发生。后两个注释用于调试目的。如果我不加注释,则图像更改将在两个警报之间发生,这似乎表明图像更改是由不透明度更改引起的。
因此,有人可以解释为什么它没有按照我的期望去做吗?谢谢。
编辑:更多代码:
HTML(这是唯一受影响的部分):
<div style=\"position: relative;\">
<img src=\"images/sunset.jpg\" id=\"slide\" />
<img src=\"images/website6.jpg\" id=\"slidebg\" />
</div>
CSS:
#滑动{
显示:块;
左边距:5;
右边距:自动;
边框:1px纯黑色;
z索引:1;
顶部:0px;
职位:相对
}
#slidebg {
显示:块;
margin-left:auto;
右边距:自动;
边框:1px纯黑色;
z索引:0;
顶部:0px;
位置:绝对;
}
没有找到相关结果
已邀请:
3 个回复
帆攀缺锯欧
响摔衅幸
然后,您将使用\“ slideElement.style \”等,而不是\“ document.slide.style \”。
膛嵌墒缅欠
啊! chromium9ѭ,即使是铬也可以by10ѭ 好吧,好吧,删除了指向我们在WEB DEV网站上导致我们失败的链接。