js實現淘寶固定側邊欄

本文實例為大傢分享瞭js實現淘寶固定側邊欄的具體代碼,供大傢參考,具體內容如下

1.實現效果:

當頁面運行到banner區域時,右邊側邊欄改為固定定位,當頁面運行到主體區域時,右邊側邊欄顯示返回到頂部。

2.思路:

(1)給document加scroll事件。

(2)獲取頁面被卷去的部分用window.pageYOffset.

(3)不斷判斷頁面滾動瞭多少。計算右邊側邊欄應該待的位置。

3.代碼:

pink老師用瞭固定定位fixed(固定定位是相對於窗口的距離),我做的還是用絕對定位(絕對定位是相對於父元素來說的,即document),都是可以實現的。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .top {
            width: 80%;
            height: 200px;
            background-color: pink;
        }
        .banner {
            width: 80%;
            height: 400px;
            background-color: aquamarine;
        }
        .main {
            width: 80%;
            height: 800px;
            background-color: red;
        }
        .foot {
            width: 80%;
            height: 400px;
            background-color:blanchedalmond;
        }
        .lan {
            position: absolute;
            right:10%;
            top:400px;
            width: 80px;
            height: 80px;
            background-color: cadetblue;
        }
    </style>
</head>
<body>
    <div class="top">頭部區域</div>
    <div class="banner">banner區域</div>
    <div class="main">頭部區域</div>
    <div class="foot">尾部區域</div>
    <div class="lan"></div>
    <script>
        var lan = document.querySelector('.lan');
        document.addEventListener('scroll', function() {
            console.log('jkjkkj');
            var top = window.pageYOffset;
            if(top  > 200) {
                // 改為固定定位。
                var topp = 400-200 + top;
                lan.style.top = topp+'px';
                if(top > 600) {
                    lan.innerHTML = '返回頂部';
                } else {
                    lan.innerHTML = '';
                }
 
            } else {
                lan.style.top = 400+'px';
                lan.innerHTML = '';
            }
        })
    </script>
</body>
</html>

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: