簡體   English   中英

jQuery CSS不透明度動畫

[英]jQuery CSS Opacity Animate

因此,我嘗試創建一個簡單的褪色幻燈片,其中包含五張幻燈片,並在完成后重復播放。

我覺得我所擁有的應該起作用,但事實並非如此。

<script type="text/javascript">

    $(document).ready(function() {

        function playslide(){

            setTimeout(function(){
            $("#slide-two").animate({"opacity":"1"}, 2000, 'swing').delay(11000).animate({"opacity":"0"}, 1, 'swing')}, 10000);
            setTimeout(function(){
            $("#slide-three").animate({"opacity":"1"}, 2000, 'swing').delay(11000).animate({"opacity":"0"}, 1, 'swing')}, 20000);
            setTimeout(function(){
            $("#slide-four").animate({"opacity":"1"}, 2000, 'swing').delay(11000).animate({"opacity":"0"}, 1, 'swing')}, 30000);
            setTimeout(function(){
            $("#slide-five").animate({"opacity":"1"}, 2000, 'swing').delay(11000).animate({"opacity":"0"}, 2000, 'swing')}, 40000);

        }

        playslide();

        });
</script>

這個想法是,第一張幻燈片的不透明度將始終設置為1,因此當最后一張幻燈片淡出時,就好像它在重新開始一樣。 每張幻燈片在淡出之前將保持10秒鍾,每張幻燈片淡入后,上一張幻燈片的不透明度將重新設置為0,以備下次重復使用。

我希望這不是一個明顯的錯誤。 抱歉,如果...

請為什么不使用.fadeIn().fadeOut()代替呢?

setTimeout(function () {
  $("#slide-two").fadeIn(400, function () {
    setTimeout(function () {
      $("#slide-two").fadeOut(function () {
      $("#slide-three").fadeIn(400, function () {
        // So on...
      });
    }, 1000);
  });
}, 1000);

最好使用這些功能來執行此操作,而不是手動為不透明度設置動畫。

https://jsfiddle.net/sk8ruo3u/

這是我會做的

var list = ['.one','.two','.three','.four'];

$.each(list, function(index, value){
    changeOpacity(value, index*1000);    
});

function changeOpacity(target, timeout) {
    setTimeout(function () {
        $(target).animate({
            opacity: 0.05
        }, 1000);
    }, timeout);
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM