CSS3實現圖片漸入效果


很多網站都有那種圖片漸入的效果,如:http://www.mi.com/minote/,這種效果用css3和一些js實現起來特別簡單。

拿我之前做的頁面來說一下怎么利用css3來實現圖片漸入效果。

下面是頁面中的一段html:

<div class="features">
    <div class="container">
        <div class="inner feature">
            <div class="content">
                <h2 class="title"><img src="./imgs/title1.png" alt=""/></h2>
                <p class="text">256位SSL加密安全連接,手機短信驗證、谷歌兩步驗證、資金密碼、郵箱驗證四重驗證保障安全,錢包分布式離線冷存儲</p>
            </div>
            <img class="icon" src="./imgs/feature-icon1.png" alt=""/>
        </div>
    </div>
    <div class="container middle">
        <div class="inner feature">
            <div class="content">
                <h2 class="title"><img src="./imgs/title1.png" alt=""/></h2>
                <p class="text">256位SSL加密安全連接,手機短信驗證、谷歌兩步驗證、資金密碼、郵箱驗證四重驗證保障安全,錢包分布式離線冷存儲</p>
            </div>
            <img class="icon" src="./imgs/feature-icon2.png" alt=""/>
        </div>
    </div>
    <div class="container">
        <div class="inner feature">
            <div class="content">
                <h2 class="title"><img src="./imgs/title1.png" alt=""/></h2>
                <p class="text">256位SSL加密安全連接,手機短信驗證、谷歌兩步驗證、資金密碼、郵箱驗證四重驗證保障安全,錢包分布式離線冷存儲</p>
            </div>
            <img class="icon" src="./imgs/feature-icon3.png" alt=""/>
        </div>
    </div>
</div>

首先,需要先定位圖片,把圖片定位在漸入后最終停留的位置:

.feature .icon {
	position: absolute;
	top: 100px;
}

接着,利用css3的transform屬性和translate()方法實現圖片的偏移,還有就是將圖片透明度設為0(即完全透明):

.feature .icon {
    position: absolute;
    top: 100px;
    transform: translate3d(0, 0, 150px);
    -ms-transform: translate3d(0, 150px, 0);
    -webkit-transform: translate3d(0, 150px, 0);
    -o-transform: translate3d(0, 150px, 0);
    -moz-transform: translate3d(0, 150px, 0);
    opacity: 0;
}

這邊需要加上各瀏覽器的前綴來兼容一些低版本瀏覽器。這些屬性和方法的具體用法這邊就細講了。

然后,要用到的是css3的transition屬性:

.feature .icon {
    position: absolute;
    top: 100px;
    transform: translate3d(0, 0, 150px);
    -ms-transform: translate3d(0, 150px, 0);
    -webkit-transform: translate3d(0, 150px, 0);
    -o-transform: translate3d(0, 150px, 0);
    -moz-transform: translate3d(0, 150px, 0);
    opacity: 0;
    transition: transform 1s ease 0s, opacity 1s ease 0s;
    -moz-transition: -moz-transform 1s ease 0s, opacity 1s ease 0s;
    -webkit-transition: -webkit-transform 1s ease 0s, opacity 1s ease 0s;
    -o-transition: -o-transform 1s ease 0s, opacity 1s ease 0s;
    -ms-transition: -ms-transform 1s ease 0s, opacity 1s ease 0s;
}

transition屬性是一個過渡屬性,當元素從一種樣式變換為另一種樣式時為元素添加效果。

到這還沒有效果。我們要達到的效果是:當網頁往下滾動,圖片出現或將要出現在視窗時,我們來觸發這個過渡效果,就像大家看到的下面這張圖片一樣。這個做法就像圖片的惰性加載,圖片還沒出現在視窗中時,先不加載,出現時再去加載圖片,這樣的效果就是用戶訪問頁面的速度提升了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM