1. 程式人生 > 其它 >css實現視差滾動效果

css實現視差滾動效果

今天逛京東金融的時候發現他家網站首頁的滾動效果看著很有意思,於是就做了一個,demo連結http://1.liwenyang.applinzi.com/index.html

大多數的視差滾動效果都是使用js來實現的,實際上,如果你對相容性要求不是很高,比方說忽略IE瀏覽器,則我們使用簡單的幾行CSS程式碼就可以實現視差滾動效果了。

css有一個background-attachment屬性

作用是設定背景影象是否固定或者隨著頁面的其餘部分滾動。

這裡要注意任何版本的 Internet Explorer (包括 IE8)都不支援屬性值 "inherit"。

上程式碼

結構超級簡單,用到的文字是00後小詩人姜二嫚的,哈哈,真的很不錯

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css視差滾動</title>
    <link rel="stylesheet" type="text/css" href="index.css">
</head>
<body>
    
        <div class="box">
            <div class="flowImage fixed-bg bg1">
                <p>
                    這個西紅柿死了嗎<br>
                    可是它的顏色<br>
                    還像鮮花一樣奔放
                </p>
            </div>
            <div class="flowImage fixed-bg bg2">
                <p>為了跳到天上<br>
                   月亮先爬到樹上。
                </p>
            </div>
            <div class="flowImage fixed-bg bg3">
                <p>
                    晚上<br>
                    我打著手電筒散步<br>
                    累了就拿它當柺杖<br>
                    我拄著一束光
                </p>
            </div>
            <div class="flowImage fixed-bg bg4">
                <p>
                我是在摸一顆星星<br>
                因為地球<br>
                也是一顆星星
            </p>
            </div>
            <div class="flowImage fixed-bg bg5">
                <p>
                    我在家等爸爸媽媽<br>
                       我餓了<br>
                    這時飛來一隻金龜子<br>
                    可能金龜子也餓了
                </p>
            </div>
            <div class="flowImage fixed-bg bg6">
                <p>
                    每當見到加油站<br>
                    我就在心裡大聲地喊<br>
                    加油加油加油<br>
                    也不知為了誰
                </p>
            </div>
        </div>
    
</body>
</html>

css

body, html {
    height: 100%;
    margin: 0;
    padding: 0
}

.box {
    height: 100%;
    position: relative;
    z-index: 1;
}

.flowImage {
    position: relative;
    height: 500px;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    z-index: 1;
   background-attachment: fixed; //劃重點!!!
}

.flowImage>p {
    margin: 0;
    position: absolute;
    top: 50%;
    left: 10%;
    color: #fff;
    font-size: 30px;
    transform: translate(-10%, -50%);
}

.bg1 {
    background-image: url(images/1.jpg);
}

.bg2:nth-child(2) {
    background-image: url(images/2.jpg);
}

.bg3:nth-child(3) {
    background-image: url(images/3.jpg);
}

.bg4:nth-child(4) {
    background-image: url(images/4.jpg);
}

.bg5:nth-child(5) {
    background-image: url(images/5.jpg);
}

.bg6:nth-child(6) {
    background-image: url(images/6.jpg);
}

搞定收工