亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

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

JavaScript 獲取滾動(dòng)條位置并將頁(yè)面滑動(dòng)到錨點(diǎn)

瀏覽:82日期:2023-10-04 11:44:54
前言

這篇來(lái)記錄下最近工作中遇到的一個(gè)問(wèn)題,在app原生和前端h5混合開(kāi)發(fā)的過(guò)程中,其中一個(gè)頁(yè)面是選擇城市列表的頁(yè)面,類(lèi)似于美團(tuán)餓了么城市選擇,銀行app中銀行列表選擇,通訊錄中快速定位到聯(lián)系人選擇的錨點(diǎn)位置等這樣的功能,作為剛?cè)腴T(mén)不久的我來(lái)說(shuō),感覺(jué)這個(gè)功能還是有一點(diǎn)壓力。下面我來(lái)分享一下我所查到的一些實(shí)現(xiàn)方法。

什么是錨點(diǎn)問(wèn)題

對(duì)于pc端網(wǎng)頁(yè)來(lái)說(shuō),常見(jiàn)的網(wǎng)頁(yè)右側(cè)的回到頂部按鈕,點(diǎn)擊直接跳轉(zhuǎn)到網(wǎng)頁(yè)最上面,就是錨點(diǎn)的實(shí)現(xiàn);

對(duì)于移動(dòng)端來(lái)說(shuō),打開(kāi)你手機(jī)的通訊錄,點(diǎn)擊右側(cè)的字母,頁(yè)面直接跳轉(zhuǎn)到對(duì)應(yīng)字母的聯(lián)系人,這也是錨點(diǎn)的實(shí)現(xiàn)。

常見(jiàn)的解決方法1.<a>標(biāo)簽中href屬性設(shè)置為跳轉(zhuǎn)元素的id的值

<style> #mydiv{ height: 1200px; width: 100%; background-color: pink; position: relative; } a{ position: absolute; top: 1000px; left: 1000px; } </style> <div id='mydiv'> 我是網(wǎng)頁(yè)頂部 </div> <a href='http://m.lshqa.cn/bcjs/16418.html#mydiv' rel='external nofollow' >回到頂部</a>

上面的辦法相當(dāng)于設(shè)置一個(gè)超鏈接,a標(biāo)簽直接跳轉(zhuǎn),但是這樣回改變?yōu)g覽器地址欄中的地址,感覺(jué)不太實(shí)用

2.原生js獲取滾動(dòng)條位置,并作出改變scrollTop

<style> body{ position: relative; } h1{ margin: 0 auto; } .mybtn1{ position: fixed; left: 200px; top: 500px; } .mybtn2{ position: fixed; left: 200px; top: 550px; } </style><body> <h1 id='topH1'>1</h1> <h1>2</h1> <h1>3</h1> <h1>4</h1> <h1>5</h1> <h1>6</h1> <h1>7</h1> <h1>1</h1> <h1>2</h1> <h1>3</h1> <h1>4</h1> <h1>5</h1> <h1>6</h1> <h1>7</h1> <h1>1</h1> <h1>2</h1> <h1>3</h1> <h1>4</h1> <h1>5</h1> <h1>6</h1> <h1 id='tobtmH1'>7</h1> <button onclick='toTop()'>回到頂部</button> <script> function toTop(){ var topH1 = document.getElementById('topH1') document.documentElement.scrollTop=topH1.offsetTop window.pageYOffset=topH1.offsetTop document.body.scrollTop=topH1.offsetTop ; } </script> </body>

這種方法就是給按鈕添加點(diǎn)擊事件,觸發(fā)點(diǎn)擊事件后改變滾動(dòng)條位置,但是這種辦法需要處理兼容型問(wèn)題比較麻煩,pc端移動(dòng)端親測(cè)有效。

3.element.scrollIntoview使得滾動(dòng)條根據(jù)視圖發(fā)生變化

<style> body{ position: relative; } .mydiv{ margin-top: 100px; border: 1px solid pink; } h1{ margin: 0 auto; } .mybtn1{ position: fixed; left: 200px; top: 500px; } .mybtn2{ position: fixed; left: 200px; top: 550px; }</style><body> <div class='mydiv'> <h1 id='topH1'>1</h1> <h1>2</h1> <h1>3</h1> <h1>4</h1> <h1>5</h1> <h1>6</h1> <h1>7</h1> <h1>1</h1> <h1>2</h1> <h1>3</h1> <h1>4</h1> <h1>5</h1> <h1>6</h1> <h1>7</h1> <h1>1</h1> <h1>2</h1> <h1>3</h1> <h1>4</h1> <h1>5</h1> <h1>6</h1> <h1 id='tobtmH1'>7</h1></div> <button onclick='toTop()'>回到頂部</button> <button onclick='toBtm()'>去到底部</button> <script> window.onload=function(){ } // 調(diào)用方法為element.scrollIntoview() //參數(shù)為true時(shí),頁(yè)面或者容器發(fā)生滾動(dòng),使得element的頂部與視圖容器頂部對(duì)齊 //參數(shù)為false時(shí),使得element的底部與視圖容器底部對(duì)齊 function toTop(){ var topH1 = document.getElementById(’topH1’) topH1.scrollIntoView(true) } function toBtm() { var tobtmH1 = document.getElementById(’tobtmH1’) tobtmH1.scrollIntoView(false) } </script> </body>

上面這種方法是將錨點(diǎn)跳轉(zhuǎn)到視圖的頂部或者底部,沒(méi)有太多弊端,pc端移動(dòng)端親測(cè)有效。

進(jìn)階的解決方法

進(jìn)階的方法就是調(diào)用第三發(fā)插件better-scroll,這種方法還沒(méi)有親測(cè),查看資料也沒(méi)有太多的坑,需要的自己添加使用下。

以上就是JavaScript 獲取滾動(dòng)條位置并將頁(yè)面滑動(dòng)到錨點(diǎn)的詳細(xì)內(nèi)容,更多關(guān)于JavaScript 滾動(dòng)條滑動(dòng)到錨點(diǎn)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 亚洲激情 欧美 | 日韩中文字幕免费在线观看 | 真人一级毛片免费观看视频 | 91香蕉国产线观看免 | 成人免费午夜视频 | 看一级特黄a大一片 | 欧美亚洲国产成人高清在线 | 特级毛片免费视频播放 | 99精品国产成人一区二区在线 | 成年免费a级毛片 | 国产女人一区二区 | 草草久久97超级碰碰碰免费 | 国产手机视频 | 韩国美女高清爽快一级毛片 | 男人精品一线视频在线观看 | 精品欧美成人高清视频在线观看 | 97香蕉久久夜色精品国产 | 成人免费午夜视频 | 久草精品免费 | 99热官网| 成年视频国产免费观看 | 玖玖精品在线视频 | 国产在线观看91精品一区 | 久久国产香蕉 | 图片区偷拍区小说区 | 日本三级网站 | 国产99视频精品免费观看7 | 国产一区二区三区免费播放 | 久久久久久久久久免免费精品 | 韩国免又爽又刺激激情视频 | 亚洲一区二区三区国产精品 | 黄免费看| 国产在线精品一区二区高清不卡 | 高清国产在线观看 | 亚欧人成精品免费观看 | 久草在线视频免费 | 一级毛片不卡免费看老司机 | 久热香蕉在线视频 | japanese乱子另类 | 99国产精品农村一级毛片 | 国产女厕偷窥系列在线视频 |