それで、私は自分のウェブサイトのスライドショーを作ろうとしています。スライドショーが正常に動作するようになりましたが、画像の変更の前後に不透明度をゆっくりと上下に変更して、画像間にフェードを追加することにしました。私は彼のコードを何度も読みましたが、以下のコードのロジックを理解するのは少し難しいですが、非常にスムーズに動作するはずです. 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 秒前にフェードアウトするだけで、フェードバックしません。次の画像がフェードインする代わりに、不透明度 1.0 で変化して表示されます。