所以,我一直在尝试为我的网站制作幻灯片。我的幻灯片工作正常,但后来我决定通过分别在图像更改前后缓慢上下改变不透明度来在图像之间添加一些淡入淡出。我一遍又一遍地阅读了他的代码,虽然下面代码中的逻辑有点难以理解,但据我所知,它应该工作得非常顺利。我正在使用 for 循环为每个单独的不透明度更改生成 setTimeout 语句。
//Shortcut for getElementById()
function e(eel) {
return document.getElementById(eel);
}
//Slideshow
window.slideShow();
function slideShow(){
var a = setTimeout(loopChange,8000);
var b = setTimeout(function(){changeSrcTo("Other/noctis.jpg")},10000);
var c = setTimeout(loopChange,18000);
var d = setTimeout(function(){changeSrcTo("Other/retriever.jpg")},20000);
var e = setTimeout(loopChange,28000);
var f = setTimeout(function(){changeSrcTo("Other/miningop2.jpg")},30000);
var g = setTimeout(slideShow,30000);
}
function changeSrcTo(thisSrc){
e('dynimg').src=thisSrc;
}
function loopChange(){
for(i=0;i<=10;i++){
var t = setTimeout(function(){changeOpacity((1-(i*0.02)))},(i*200));
}
for(i=0;i<=20;i++){
var u = setTimeout(function(){changeOpacity((0.6+(i*0.02)))},((i*200)+2000));
}
}
function changeOpacity(oValue){
e('dynimg').style.opacity=oValue;
e('dynimg').style.filter="alpha("+(oValue*100)+")";
}
我向你们倾销代码深表歉意,但我真的不知道还能问谁。我希望我可怕的代码不会太混乱。从本质上讲,它真的很跳跃,只是在 img 变化前一秒褪色,并没有褪色。而不是下一个图像淡入,它只是在改变并以 1.0 的不透明度出现。