簡體   English   中英

淡入淡出更改html文本的最佳/正確方法?

[英]Best/proper way to fade-in-out changing html text?

我正在創建一個示例網站進行練習,並且創建了一個功能,該功能每隔x秒鍾更改網站的主要背景圖像。 隨着對背景圖像的更改,我想更改與每個圖像相對應的標題文本。 我可以很好地淡入背景圖像,但文字不能淡入淡出。

我假設它是因為我沒有更改css,而是因為我直接更改了html文本,所以過渡不起作用。

這是我的功能:

function updateImage() {
    if (pic == 1) {
        caption = "GO BEYOND EARTH";
    }
    else if (pic == 2) {
        caption = "EXPLORE NEW WORLDS";
    }
    else if (pic == 3) {
        caption = "EXPERIENCE DEEP SPACE";
    }

    $('.pic-titles').text(caption);
    $('.center').css('background-image', 'url(img/space' + pic + '.jpg');
    pic++;

    if (pic > 3) {
        pic = 1;
    }
  }
});

現在,文本只是發生了變化,看起來並不那么好。 我希望它與背景圖像的淡入淡出效果相匹配。 我嘗試一起使用jQuery fadeIn和fadeOut,但結果看起來不太好。

您需要兩件事,動畫方法和隊列。 使用此組合,您可以淡出第一個動畫上的文本,然后在該點上直接更改文本。 最后淡入新文本。

希望這就是您想要的。 如果需要,很高興為您解釋或提供更好的解決方案。

 var pic = 2; function updateImage() { if (pic == 1) { caption = "GO BEYOND EARTH"; } else if (pic == 2) { caption = "EXPLORE NEW WORLDS"; } else if (pic == 3) { caption = "EXPERIENCE DEEP SPACE"; } //Animate function $('.pic-titles').animate({ opacity: 0 }) .queue(function() { $(this).text(caption); $(this).dequeue(); }) .animate({ opacity: 1 }); //$('.center').css('background-image', 'url(img/space' + pic + '.jpg'); pic++; if (pic > 3) { pic = 1; } } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <p class="pic-titles">GO BEYOND EARTH</p> <button onclick="updateImage()">PIC</button> 

暫無
暫無

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

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