国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

javascript實(shí)現(xiàn)固定側(cè)邊欄

瀏覽:5日期:2023-06-09 10:29:39

用javascript實(shí)現(xiàn)固定側(cè)邊欄,供大家參考,具體內(nèi)容如下

正在學(xué)習(xí)大前端中,有代碼和思路不規(guī)范不正確的地方往多多包涵,感謝指教

我們?cè)诠淠衬成坛堑臅r(shí)候,或者某些網(wǎng)站的時(shí)候,通常會(huì)遇到有個(gè)東西叫做側(cè)邊欄,這個(gè)東西會(huì)跟隨我們?yōu)g覽器瀏覽長(zhǎng)度來進(jìn)行變化1,從而實(shí)現(xiàn)相對(duì)窗口的固定位置1

**代碼如下**

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Title</title> <style> .cm{ position: absolute; top: 300px; margin-left: 1150px; width: 60px; height: 130px; background-color: pink; } .w{ margin: 10px auto; width: 80%; } .head{ height: 200px; background-color: blue; } .banner{ height: 400px; background-color: green; } .main{ height: 1000px; background-color: hotpink; } span { display: none; /*position: absolute; bottom: 0;*/ } </style></head><body> <div class='cm'> <span class='backTop'>返回頂部</span> </div> <div class='head w'>頭部區(qū)域</div> <div class='banner w'>banner區(qū)域</div> <div class='main w'>主體區(qū)域</div> <script> var cm=document.querySelector(’.cm’) var banner=document.querySelector(’.banner’) /*console.log(banner.offsetTop)*/ //被卷曲頭部的大小位置,寫在外面 var bannertop=banner.offsetTop var cmtop=cm.offsetTop-bannertop var main=document.querySelector(’.main’) var goback=document.querySelector(’.backTop’) var maintop=main.offsetTop document.addEventListener(’scroll’,function () { //頁面被卷去的頭部 /*console.log(window.pageYOffset)*/ //當(dāng)卷曲頭部大于214,側(cè)邊欄改為固定 if (window.pageYOffset>bannertop){ cm.style.position=’fixed’ cm.style.top=cmtop+’px’ }else { cm.style.position=’absolute’ cm.style.top=’300px’ } if (window.pageYOffset>maintop){ goback.style.display=’block’ }else { goback.style.display=’none’ } }) </script></body></html>

演示效果

javascript實(shí)現(xiàn)固定側(cè)邊欄

代碼解釋

這里用到了document的添加事件scroll,瀏覽器滾動(dòng)事件,當(dāng)滾動(dòng)時(shí),觸發(fā)函數(shù)。

這里設(shè)置了一個(gè)變量為bannerTop,是中間那個(gè)綠色模塊頂部距離頁面最上方的距離,然后定義cmtop這個(gè)變量,cm為側(cè)邊欄到頂部的距離,cmtop=bannerTop-cm.offsetTop。然后判斷頁面卷曲的長(zhǎng)度是否大于中間那個(gè)模塊距離頂部的距離,意思的頁面是否劃到中間這個(gè)模塊,如果劃到了中間這個(gè)模塊,那么讓側(cè)邊欄的位置固定,然后側(cè)邊欄距離頂部的距離相應(yīng)改變,這里這個(gè)情況因?yàn)閭?cè)邊欄與中間拿塊是相對(duì)靜止,所以,未卷到中間區(qū)域時(shí),cmtop的值是恒定不變的,當(dāng)卷到中間區(qū)域時(shí),banner。Top的值變?yōu)樨?fù)值,所以cmtop的值在相應(yīng)的增加,并且把這個(gè)增加的值傳給側(cè)邊欄距離頂部的值,這也就出現(xiàn)了劃到中間區(qū)域,側(cè)邊欄相對(duì)靜止的情況。如果沒有滑倒中間區(qū)域,那么側(cè)邊欄的位置還是默認(rèn)的位置。

然后如果劃到了最后一個(gè)區(qū)域則出現(xiàn)‘回到頂部’這四個(gè)字在側(cè)邊欄上。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 国产手机在线国内精品 | 男人使劲躁女人视频小v | 国产亚洲精品2021自在线 | 欧美一级成人一区二区三区 | 美女张开腿让人桶 | 亚洲国内精品自在线影视 | 写真片福利视频在线播放 | 手机毛片免费看 | 国产综合久久 | 毛片无码国产 | 三级全黄a | 亚洲国产韩国一区二区 | 亚洲久久网| 欧洲欧美成人免费大片 | 欧美成人免费全部观看天天性色 | 国产一级小视频 | 欧美性高清bbbbbbxxxxx | 欧美.亚洲.日本一区二区三区 | 国内免费视频成人精品 | 久久亚洲精品中文字幕二区 | 日韩国产成人精品视频 | 男女很舒服爽视频免费 | cekc欧美| 亚洲久草在线 | 成人国产一区二区三区 | 日韩色视频一区二区三区亚洲 | theav视频在线观看 | 国产呦系列呦 | 玖玖在线免费视频 | 九一国产精品视频 | 日韩毛片免费视频一级特黄 | 麻豆国产96在线 | 日韩 | 欧美 亚洲 丝袜 清纯 中文 | 中文字幕一区二区三 | 精品一区二区三区在线观看l | 香蕉视频在线观看黄 | 国产香蕉国产精品偷在线观看 | 一区二区三区观看 | 欧美一级人与动毛片免费播放 | 亚洲日本欧美综合在线一 | 国产精品分类视频分类一区 |