2017-08-23 12 views
0

私はこの3つの画像を交互に切り替える基本的なスクリプトを用意しています。シンプルなフェードイン/フェードアウト/フェードトなどを追加したいと思います。どうすればこれを達成できますか?それとも良い方法がありますか?JSスクリプトにフェード機能を追加しますか?

function displayNextImage() { 
    x = (x === images.length - 1) ? 0 : x + 1; 
    document.getElementById("img").src = images[x]; 
    } 
function displayPreviousImage() { 
    x = (x <= 0) ? images.length - 1 : x - 1; 
    document.getElementById("img").src = images[x]; 
    } 
function startTimer() { 
    setInterval(displayNextImage, 3000); 
    } 
    var images = [], x = -1; 
    images[0] = "assets/img/logo1.png"; 
    images[1] = "assets/img/logo2.png"; 
    images[2] = "assets/img/logo3.png"; 
+0

http://www.chrisbuttery.com/articles/fade-in-fade-out-with-javascript/ – Jalil

+0

またはjquery:https://www.w3schools.com/jquery/jquery_fade.asp –

答えて

1

チェックアウトの場合:

img { 
    opacity: 1; 
    transition: opacity 500ms ease-in-out; 
} 
img.fadeOut { 
    opacity: 0; 
} 

注:

function displayNextImage() { 
    x = (x === images.length - 1) ? 0 : x + 1; 
    var imgvar = document.getElementById("img"); 
    imgvar.classList.add("fadeOut"); 
    setTimeout(function() { 
     imgvar.src = images[x]; 
     imgvar.classList.remove("fadeOut"); 
    }, 500); 
} 
function displayPreviousImage() { 
    x = (x <= 0) ? images.length - 1 : x - 1; 
    var imgvar = document.getElementById("img"); 
    imgvar.classList.add("fadeOut"); 
    setTimeout(function() { 
     imgvar.src = images[x]; 
     imgvar.classList.remove("fadeOut"); 
    }, 500); 
} 
function startTimer() { 
    setInterval(displayNextImage, 3000); 
} 
    var images = [], x = -1; 
    images[0] = "assets/img/logo1.png"; 
    images[1] = "assets/img/logo2.png"; 
    images[2] = "assets/img/logo3.png"; 

そしてCSSで

:アニメーションが表示されないように思われるので、JavaScriptから500msのtimeOutを追加しました。なぜなら、即座に可視から不可視に戻ってしまうからです。

+1

を使用できます。完璧。 jonas-giuroありがとうございました。 – ozmo

1

ページに2つのイメージ要素を配置できます。 1つは現在の画像用で、もう1つは次の画像用です。

が経過した画像を表示するための時間と、遷移が完了すると、0

に、その不透明度を移行表示する次画像と画像ソースを交換する可視画像にCSSクラスを適用します。画像要素を画像要素の背後に配置します。画像要素はユーザーに表示され、移行CSSが削除されます。

1

次を使用することができます。 Source, W3 Schools. See here for the jQuery include

ただし、これはjQueryを使用しています。あなたの制限によっては、これを使用できないことがあります。両方fadeIn(time)fadeOut(time)機能の詳細、あなたはSRCを変更する前に、画像の不透明度を設定することができW3's article!

関連する問題