2017-09-29 22 views
-2

即時通訊工作在這個項目中,我連續三張海報(圖片)。定時過濾器transistion動畫

我想知道是否有可能定時動畫設置爲循環每個海報。

爲所有,但第一張海報都greyscaled,2秒,然後所有,但中間greyscaled 2秒,然後在前兩個greyscaled 2秒。

我希望有些是有道理的。

感謝

+2

「我希望這有點合理。」不。請閱讀[問]並確保你包含一個[mcve] – j08691

+0

谷歌一些CSS教程轉換 – sn3ll

回答

1

您可以使用setInterval(function, time);讓重複的JavaScript函數下去。或者,您可以使用setTimeout,它只會執行一次,但可以在函數中再次調用。 (有用的,如果你想要一些停止條件)

在該函數的所有您需要做的則是通過所有的圖像週期。我是用數組做的,但是你也應該可以使用$('img'),它選擇所有圖像,然後用<any jQuery element>.get()來訪問這些元素。

然後使用removeClassaddClass來添加和刪除一個CSS類,它描述了您想要的效果。

詮釋你到底應該something like this

(從這裏codepen :)

var images = [$('#img1'), $('#img2'), $('#img3')]; 
 
var currImage = 0; 
 

 
function cycle() { 
 
    images[currImage].removeClass('highlighted'); 
 
    ++currImage; 
 
    if(currImage >= images.length) 
 
    currImage = 0; 
 
    images[currImage].addClass('highlighted'); 
 
} 
 

 
setInterval(cycle, 2000);
img.highlighted { 
 
    -webkit-filter: grayscale(100%); 
 
    filter: grayscale(100%); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="wrapper"> 
 
    <img src="http://www.placecage.com/100/100" alt="" id="img1" class="highlighted"> 
 
    <img src="http://www.placecage.com/100/100" alt="" id="img2"> 
 
    <img src="http://www.placecage.com/100/100" alt="" id="img3"> 
 
</div>


相同的代碼最終如果你也想動畫,可以要麼用jQuery來做,要麼沿着

img { 
    transition: all 1s ease; 
    -webkit-transition: all 1s ease; 
} 

,如果你想要的東西票友有很多關於CSS過渡頁面。

+0

這是什麼?它如何回答這個問題?不要只是脫口而出代碼。自己解釋一下! https://stackoverflow.com/help/how-to-answer – Rob

+0

嗯,我不認爲代碼過於複雜,但我想我會改善我的答案 – SourceOverflow

+0

很好的例子,但我認爲它實際上做什麼的對面他問。 – Herohtar