js實現(xiàn)淘寶固定側邊欄
本文實例為大家分享了js實現(xiàn)淘寶固定側邊欄的具體代碼,供大家參考,具體內(nèi)容如下
1.實現(xiàn)效果:

當頁面運行到banner區(qū)域時,右邊側邊欄改為固定定位,當頁面運行到主體區(qū)域時,右邊側邊欄顯示返回到頂部。
2.思路:
(1)給document加scroll事件。
(2)獲取頁面被卷去的部分用window.pageYOffset.
(3)不斷判斷頁面滾動了多少。計算右邊側邊欄應該待的位置。
3.代碼:
pink老師用了固定定位fixed(固定定位是相對于窗口的距離),我做的還是用絕對定位(絕對定位是相對于父元素來說的,即document),都是可以實現(xiàn)的。
<!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">頭部區(qū)域</div>
? ? <div class="banner">banner區(qū)域</div>
? ? <div class="main">頭部區(qū)域</div>
? ? <div class="foot">尾部區(qū)域</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>以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
window.print()打印html網(wǎng)頁的兩種方法實現(xiàn)
本文主要介紹了window.print()打印html網(wǎng)頁的兩種方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-06-06
layui--select使用以及下拉框實現(xiàn)鍵盤選擇的例子
今天小編就為大家分享一篇layui--select使用以及下拉框實現(xiàn)鍵盤選擇的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09
JavaScript常見錯誤:“無法讀取未定義的屬性”的原因及解決方案
本文將深入探討“無法讀取未定義的屬性”這一常見JavaScript錯誤,分析其成因,提供詳細的解決方案和最佳實踐,幫助開發(fā)者有效地預防和修復此類問題,感興趣的小伙伴跟著小編一起來看看吧2024-12-12
解析element-ui中upload組件傳遞文件及其他參數(shù)的問題
這篇文章主要介紹了element-ui中upload組件如何傳遞文件及其他參數(shù),分析一下我使用element-ui遇到的問題以及解決方法,需要的朋友可以參考下2021-11-11

