javascript淡入淡出效果的實現思路

來源:互聯網
上載者:User

如題,只有思路,沒有代碼。

這個思路是最近寫XScroll.js類的時候想明白的。平常我們說的淡入淡出效果,一般分成兩部分,一半是淡入,另一半就是淡出了。不過經過分析,我覺得其實只需要一半就行了。

比如寫一個圖片切換類,轉場效果是淡入淡出,通常我們會這樣寫:當切換髮生的時候,當前顯示的圖片淡出(漸漸隱藏),將要顯示的圖片淡入(漸漸出現),通常兩張圖片的動畫速度是一致的,以便實現當前圖片完全隱藏之時就是下一張圖片完全顯示之日。

我們來列一個簡單的步驟:

當前圖片漸隱,透明度由100%變成90%;同時下一張圖片漸顯,透明度由0變成10.
當前圖透明度80%,下張圖透明度20%
當前圖70%,下張圖30%。
。。。。
當前圖10%,下張圖90%
完成切換
其實,這樣做完全是一種浪費!

我們想一想,如果下張圖zIndex位於當前圖之上,當它漸顯的時候,因為越來越不透明,所以視覺上,他下層的當前圖片看起來就越來越透明!

比如,下張圖透明度為20%的時候,因為他覆蓋在當前圖上,所以當前圖片看起來透明度就是100%-20%=80%!

所以,在製作淡入淡出轉場效果的時候,其實只需要淡入效果即可,淡入的同時,淡出就發生著;淡入結束時,就是淡出終結。這樣一來,永遠不用擔心淡入與淡出不同步的問題。

關鍵是,這樣一來只用同時迴圈設定一張圖片的透明度(即下張圖),不用管被擋住的這張(即當前圖),節約了一半的運算。這也算是最佳化了javascript的執行效率吧?

所以,我實現淡入淡出轉場效果的思路就是:

將下一張圖片的zIndex設定於當前圖片之上
下一張圖片進行淡入(漸顯)迴圈;當前圖片不操作。
淡入進行時,淡出同步發生;淡入完成,淡出同時完成。
註:此思路只適合於當前圖與下一張圖重疊的情況(大部分時候都是這樣)。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.