CSS3使用JavaScript觸發過渡效果(transition)

來源:互聯網
上載者:User

使用 :hover 和 :focus 這樣的偽類,我們可以很方便的將元素從一個樣式切換到另一個樣式,而且切換是會有過渡效果。但有時我們想要使用 js 來驅動過渡(即在代碼中觸發過渡)也是可以實現的。

和普通過渡一樣,先建立兩個樣式規則,一個是元素的初始狀態,一個是過渡結束的狀態。然後用 js 在合適的事機修改對應元素的樣式即可。

 

 

 

下面以一個日夜景圖片切換的範例示範:

 

(1)日景和夜景是兩張圖片疊在一起的。夜景圖初始透明度是0,覆蓋在日景圖上方。

 

(2)點擊“看夜景”按鈕,夜景圖透明度逐漸從0過渡到1,看起來畫面慢慢變成夜景。

 

(3)點擊“看日景”按鈕,夜景圖透明度逐漸又從1過渡到0,看起來畫面恢複成日景。

 

 

 

線上範例如下:

 

看夜景 看日景



<!doctype html>
<html lang="en">
<head>
<title>hangge.com</title>
 
<style>
img {
    position:absolute;
    transition: opacity 5s;
    -webkit-transition: opacity 5s;
}
 
.solid {
    opacity: 1;
}
 
.transparent {
    opacity: 0;
}
</style>
 
<script>
    function toNight(){
            var nightImage = document.getElementById("nightImage");
            nightImage.className = "solid";
    }
 
    function toDay(){
            var nightImage = document.getElementById("nightImage");
            nightImage.className = "transparent";
    }
</script>
</head>
<body>
    <button onclick="toNight()">看夜景</button>
    <button onclick="toDay()">看日景</button>
    <div>
        <img src="day.png" alt="日景"/>
        <img src="night.png" alt="夜景" id="nightImage" class="transparent"/>
    </div>
</body>
</html>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.