欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript 獲取滾動條位置并將頁面滑動到錨點

 更新時間:2021年02月08日 15:39:51   作者:丶Serendipity丶  
這篇文章主要介紹了JavaScript 獲取滾動條位置并將頁面滑動到錨點的的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用JavaScript,感興趣的朋友可以了解下

前言

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

什么是錨點問題

對于pc端網(wǎng)頁來說,常見的網(wǎng)頁右側(cè)的回到頂部按鈕,點擊直接跳轉(zhuǎn)到網(wǎng)頁最上面,就是錨點的實現(xiàn);

對于移動端來說,打開你手機的通訊錄,點擊右側(cè)的字母,頁面直接跳轉(zhuǎn)到對應(yīng)字母的聯(lián)系人,這也是錨點的實現(xià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)頁頂部
  </div>
  <a href="#mydiv" rel="external nofollow" >回到頂部</a>

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

2.原生js獲取滾動條位置,并作出改變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 class="mybtn1"  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>

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

3.element.scrollIntoview使得滾動條根據(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 class="mybtn1"  onclick="toTop()">回到頂部</button>
  <button class="mybtn2" onclick="toBtm()">去到底部</button>
  <script>
    window.onload=function(){

    }
  // 調(diào)用方法為element.scrollIntoview()
  //參數(shù)為true時,頁面或者容器發(fā)生滾動,使得element的頂部與視圖容器頂部對齊
  //參數(shù)為false時,使得element的底部與視圖容器底部對齊
    function toTop(){
      var topH1 = document.getElementById('topH1')
      topH1.scrollIntoView(true)
    }
    function toBtm() {
      var tobtmH1 = document.getElementById('tobtmH1')
      tobtmH1.scrollIntoView(false)
    }
  </script> 
</body>

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

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

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

以上就是JavaScript 獲取滾動條位置并將頁面滑動到錨點的詳細(xì)內(nèi)容,更多關(guān)于JavaScript 滾動條滑動到錨點的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • JavaScript提升性能的常用技巧總結(jié)【經(jīng)典】

    JavaScript提升性能的常用技巧總結(jié)【經(jīng)典】

    這篇文章主要介紹了JavaScript提升性能的常用技巧,結(jié)合實例形式總結(jié)分析了JavaScript編程中常見的性能提升優(yōu)化技巧,涉及作用域、循環(huán)、變量、DOM及函數(shù)節(jié)流等,非常具有實用價值,需要的朋友可以參考下
    2016-06-06
  • JS實現(xiàn)滑動菜單效果代碼(包括Tab,選項卡,橫向等效果)

    JS實現(xiàn)滑動菜單效果代碼(包括Tab,選項卡,橫向等效果)

    這篇文章主要介紹了JS實現(xiàn)滑動菜單效果代碼,以實例形式實現(xiàn)了包括Tab,選項卡,橫向等效果,非常簡單實用,需要的朋友可以參考下
    2015-09-09
  • JS 實現(xiàn)獲取打開一個界面中輸入的值

    JS 實現(xiàn)獲取打開一個界面中輸入的值

    JS 實現(xiàn)獲取打開一個界面中輸入的值,需要的朋友可以參考一下
    2013-03-03
  • Bootstrap Table的使用總結(jié)

    Bootstrap Table的使用總結(jié)

    這篇文章主要介紹了Bootstrap Table的使用小結(jié),本文介紹的非常詳細(xì),具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-10-10
  • JavaScript編寫實現(xiàn)飛機大戰(zhàn)

    JavaScript編寫實現(xiàn)飛機大戰(zhàn)

    這篇文章主要為大家詳細(xì)介紹了JavaScript編寫實現(xiàn)飛機大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • json格式數(shù)據(jù)的添加,刪除及排序方法

    json格式數(shù)據(jù)的添加,刪除及排序方法

    這篇文章主要介紹了json格式數(shù)據(jù)的添加,刪除及排序方法,結(jié)合實例形式分析了針對一維數(shù)組與二維數(shù)組的json格式數(shù)據(jù)進(jìn)行增加、刪除與排序的實現(xiàn)技巧,需要的朋友可以參考下
    2016-01-01
  • Babylon使用麥克風(fēng)并處理常見問題解決

    Babylon使用麥克風(fēng)并處理常見問題解決

    這篇文章主要為大家介紹了Babylon使用麥克風(fēng)并處理常見問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • JS將數(shù)字轉(zhuǎn)換成三位逗號分隔的樣式(示例代碼)

    JS將數(shù)字轉(zhuǎn)換成三位逗號分隔的樣式(示例代碼)

    本篇文章主要是對JS將數(shù)字轉(zhuǎn)換成三位逗號分隔的樣式(示例代碼)進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • 微信小程序如何同時獲取用戶信息和用戶手機號

    微信小程序如何同時獲取用戶信息和用戶手機號

    小程序登錄是現(xiàn)在小程序里面很普遍的一個功能,因為官方提供的方法,可以一鍵獲取到用戶信息,一鍵拿到手機號,這篇文章主要給大家介紹了關(guān)于微信小程序如何同時獲取用戶信息和用戶手機號的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • 薪資那么高的Web前端必看書單

    薪資那么高的Web前端必看書單

    由于前端開發(fā)的火熱和一些IT巨頭公司 對 web前端開發(fā)人員的需求旺盛,讓越來越多的人轉(zhuǎn)入前端。今天就為大家分享了一份Web前端開發(fā)書單,希望大家喜歡
    2017-10-10

最新評論