js滾動到指定位置


 

序言:在網絡上百度,關鍵字:“js div滾動到指定位置”,結果基本上大同小異!各種大神都給我們總結出來了四種滾動到指定位置的辦法,可惜再下愚鈍,每個都不會用,所以寫了一個超級簡單的方法來使初學者一看就懂,我們可以用邏輯來代替一部分技術!這里我們只用到一個屬性就可以達到要求,其他根據自己的邏輯判斷即可!獲取到你最外層的div的id,然后獲取屬性scrollTop,然后想好邏輯,給scrollTop賦值即可!

1、scrollTop用法

  1-1 什么是scrollTop?

    向上的滾動距離,或者說滾動出可視區域的距離

  1-2 語法

// 獲得滾動的像素數
var  intElemScrollTop = someElement.scrollTop;
// 設置滾動的距離
element.scrollTop = intValue;

  1-3  scrollTop賦值

    scrollTop賦值為負數的時候,scrollTop賦值為0;

    如果一個元素不能滾動,scrollTop賦值為0;

    如果設置超出了容器的可滾動值,scrollTop將會賦值為最大值;

  1-4 可否通過設置scrollTop的值 來改變滾動的值,嘗試中。。。。。。

    嘗試結果為:改變srcollTop並不會改變滾動條的位置!

    再次嘗試發現:改變整體的div的scrollTop可以改變滾動條的位置,上次嘗試id值取錯!

2、滾動的需求

  2-1:點擊按鈕,使得div中滾動的內容列表中的某一條數據指定!(或者你看微信聊天中“微信”左下角的tabbar,你如果多次點擊你就會發現,如下代碼就是可以實現微信的這個功能!

    可以使用scrollTop 這個屬性來完成

    前提條件:div中的每條數據的高度是一致的,也就是說每條數據都有一樣的高度,這樣都可以根據scrollTop = X * Y (X為列表中的那個索引,Y為數據寬度,例如:每條數據的寬度為100px,你想讓第五條數據置頂,結果為:4 * 100 = scrollTop;這樣,第五條數據就可以置頂了!

    我真的不知道該怎么寫下去了,我的開發環境里邊有狀態管理,可以管理一些狀態來便利我的書寫,並且都是必要的!

    我就暫時寫一些核心代碼吧!有機會的話,錄個屏幕會更清晰一些!

    我寫了一個最簡單的邏輯供參考!可以建一個空html文件,然后代碼全部復制,在瀏覽器中打開,即可實現!

    

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>

<body>
  <div id="scrollBody" style="position:absolute;top:0;bottom:0;left:0;right:0;overflow:scroll;height:300px;">
    <div style="font-size:20px;height:100px;">
      1
    </div>
    <div style="font-size:20px;height:100px;">
      2
    </div>
    <div style="font-size:20px;height:100px;">
      3
    </div>
    <div style="font-size:20px;height:100px;">
      4
    </div>
    <div style="font-size:20px;height:100px;">
      5
    </div>
  </div>
  <div style="position:relative;top:350px;">
    <button onClick="scrollToTop()">按鈕1</button>
    <button>按鈕2</button>
  </div>
  <script>
      function scrollToTop(){
        //   這里邊可以寫一些邏輯,比如偶數行一個一個的置頂,不如狀態等於0的一個一個的置頂!
          document.getElementById('scrollBody').scrollTop = 200;
      }
  </script>
</body>

</html>

 

后續:這個代碼為小白所寫,沒有自定義動畫滾動效果!會更新!

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM