1. 程式人生 > >全屏背景視覺差滾動效果

全屏背景視覺差滾動效果

get resize ans 滾動條 效果 mas city eight 視覺

        <div class="wrap">
            <div class="one item">
                <div class="content">
                    page1
                </div>
            </div>
            <div class="two item">
                <div class="content">
                    page2
                
</div> </div> <div class="three item"> <div class="content"> page3 </div> </div> </div>
<style>
        html,body{
            height: 100%;
            margin: 0
; } .wrap{ width: 100%; height: 100%; overflow-x: hidden; overflow-y: scroll; position: relative; } .item{ display: block; width: 100%; height: 100%; font-size
: 50px; text-align: center; position: relative; background-attachment: fixed; } /*分別設置item的背景*/ .one{ background: url(img/banner1.jpg) no-repeat top left / 100% 100%; } .two{ background: url(img/banner2.jpg) no-repeat top left / 100% 100%; } .three{ background: url(img/banner3.jpg) no-repeat top left / 100% 100%; } /*用偽類給item增加mask效果*/ .item::before{ content: ‘‘; position: absolute; left: 0; top: 0; background-color: black; opacity: 0.3; width: 100%; height: 100%; } .content{ position: absolute; background-color: rgba(255,255,255,0.4); /*設置文本背景的透明度但是又會讓子元素繼承到*/ border-radius: 20px; width: 300px; height: 100px; top: 50%; left: 50%; transform: translate(-150px,-50px); } </style>
var wrap = document.getElementsByClassName(‘wrap‘)[0];
            var items=document.getElementsByClassName(‘item‘);
            var clientHeight=document.body.clientHeight;
            var num = 0;
            //窗口改變時的自適應
            window.onresize=function(){
                clientHeight=document.body.clientHeight;
                for (var i=0;i<items.length;i++) {
                    items[i].style.height=clientHeight;
                }
            }
            wrap.addEventListener("scroll", function() {
                num = wrap.scrollTop;
                for (var i=0;i<items.length;i++) {
                    items[i].style.backgroundPositionY=num-i*clientHeight +‘px‘;//根據滾動條的位置改變item的backgroundPosY
                }
            })

全屏背景視覺差滾動效果