【发布时间】:2023-04-08 11:35:01
【问题描述】:
所以,我一直在尝试为我的网站制作幻灯片。我的幻灯片工作正常,但后来我决定通过分别在图像更改前后缓慢上下改变不透明度来在图像之间添加一些淡入淡出。我一遍又一遍地阅读了他的代码,虽然下面代码中的逻辑有点难以理解,但据我所知,它应该工作得非常顺利。我正在使用 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 的不透明度显示。
【问题讨论】:
-
哇。时间是相对的,我的朋友。不要以为您的网页会及时处理您超时。如果我可以提供 1 个小费,那就是涂防晒霜……哦,对不起……使用 jQuery!
-
使用 css3 过渡...
-
我想数学在我的脑海中似乎相对简单。事后看来,也许这个脚本真的是一个糟糕的主意。我真的应该考虑数据传输时间和其他东西......我想这永远不会奏效。
标签: javascript html css web