視差滾動(Parallax Scrolling)是指多層背景以不同的速度移動,形成立體的運動效果,帶來非常出色的視覺體驗
我們可以把網(wǎng)頁解刨成:背景層、內(nèi)容層、懸浮層
當滾動鼠標滑輪的時候,各個圖層以不同的速度移動,形成視覺差的效果
使用css形式實現(xiàn)視覺差滾動效果的方式有:
作用是設(shè)置背景圖像是否固定或者隨著頁面的其余部分滾動
值分別有如下:
完成滾動視覺差就需要將background-attachment屬性設(shè)置為fixed,讓背景相對于視口固定。及時一個元素有滾動機制,背景也不會隨著元素的內(nèi)容而滾動
也就是說,背景一開始就已經(jīng)被固定在初始的位置
核心的css代碼如下:
section { height: 100vh; } .g-img { background-image: url(...); background-attachment: fixed; background-size: cover; background-position: center center; }
整體例子如下:
<style> div { height: 100vh; background: rgba(0, 0, 0, .7); color: #fff; line-height: 100vh; text-align: center; font-size: 20vh; } .a-img1 { background-image: url(https://images.pexels.com/photos/1097491/pexels-photo-1097491.jpeg); background-attachment: fixed; background-size: cover; background-position: center center; } .a-img2 { background-image: url(https://images.pexels.com/photos/2437299/pexels-photo-2437299.jpeg); background-attachment: fixed; background-size: cover; background-position: center center; } .a-img3 { background-image: url(https://images.pexels.com/photos/1005417/pexels-photo-1005417.jpeg); background-attachment: fixed; background-size: cover; background-position: center center; } </style> <div class="a-text">1</div> <div class="a-img1">2</div> <div class="a-text">3</div> <div class="a-img2">4</div> <div class="a-text">5</div> <div class="a-img3">6</div> <div class="a-text">7</div>
同樣,讓我們先來看一下兩個概念transform和perspective:
3D視角示意圖如下所示:
舉個例子:
<style> html { overflow: hidden; height: 100% } body { /* 視差元素的父級需要3D視角 */ perspective: 1px; transform-style: preserve-3d; height: 100%; overflow-y: scroll; overflow-x: hidden; } #app{ width: 100vw; height:200vh; background:skyblue; padding-top:100px; } .one{ width:500px; height:200px; background:#409eff; transform: translateZ(0px); margin-bottom: 50px; } .two{ width:500px; height:200px; background:#67c23a; transform: translateZ(-1px); margin-bottom: 150px; } .three{ width:500px; height:200px; background:#e6a23c; transform: translateZ(-2px); margin-bottom: 150px; } </style> <div id="app"> <div class="one">one</div> <div class="two">two</div> <div class="three">three</div> </div>
而這種方式實現(xiàn)視覺差動的原理如下:
以上就是CSS完成視差滾動效果的詳細內(nèi)容,更多關(guān)于CSS 視差滾動效果的資料請關(guān)注腳本之家其它相關(guān)文章!
標簽:林芝 赤峰 泰州 萍鄉(xiāng) 大同 延邊 保定
巨人網(wǎng)絡(luò)通訊聲明:本文標題《CSS完成視差滾動效果》,本文關(guān)鍵詞 ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。