整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JavaScript-如何實現滾動頁面到指定位置?

          lement.scrollIntoView()

          直接上例子代碼給大家一點參考:

          <html>
            <style>
              span {
                display: block;
                height: 150%;
              } /*整點上下的空白 */
            </style>
            <body>
              <button id="from">點擊我</button>
              <span></span>
              <div id="to">滾動到這:頭條@plzbefat</div>
              <span></span>
            </body>
            <script>
              document.getElementById("from").addEventListener("click", () => {
                document.getElementById("to").scrollIntoView({
                  behavior: "smooth", //順滑的滾動
                });
              });
            </script>
          </html>
          

          整點例子沒毛病

          語法

          element.scrollIntoView(); // 等同于element.scrollIntoView(true) 滾動 元素在頂部
          element.scrollIntoView(false); // 滾動 元素在底部
          element.scrollIntoView(option); //參數

          參數

          alignToTop:

          如果為true,元素的頂端將和其所在滾動區的可視區域的頂端對齊。相應的 scrollIntoViewOptions: {block: "start", inline: "nearest"}

          有時候,我們想閱讀頁面中某段精彩的內容,但由于頁面太長,用戶需要自己滾動頁面,查找起來非常麻煩 ,很容易讓人失去繼續往下閱讀的興趣。這樣體驗非常不好,所以我們可以想辦法 實現點擊某段文字或者圖片跳轉到頁面指定位置,方便用戶的閱讀。

          一、 純 html 實現

          1. 利用 id 為標記的錨點

          這里作為錨點的標簽可以是任意元素。

            <a href="#aa">跳轉到 id 為 aa 標記的錨點</a>
            <p>-------------分隔線-------------</p>
            <div id="aa">a</div>
          

          2. 利用 a 標簽的 name 屬性作為錨點

          這里作為錨點的標簽只能是 a 標簽。

            <a href="#bb" >跳轉到 name 為 bb 的 a 標簽錨點</a>
            <p>-------------分隔線-------------</p>
            <a name="bb">name 為 bb 的 a 標簽的錨點</a>
            <div id="abb">bbb</div>
          

          注意:當以 ' a 標簽 name 屬性作為錨點 ' 和 ' 利用 id 為標記的錨點 ' 同時出現(即以 name 為錨點和以 id 為錨點名字相同時),會將后者作為錨點。

          二、 js 實現

          1. 利用 scrollTo()

          window.scrollTo 滾動到文檔中的某個坐標。可提供滑動效果,想具體了解 scrollTo() 可以看看 MDN 中的介紹。

          話不多說,看下面代碼

          「html 部分」:

            <a id="linkc">平滑滾動到 c</a>
            <p>-------------分隔線-------------</p>
            <div id="cc">c</div>
          

          「js 部分」:

            var linkc = document.querySelector('#linkc')
            var cc = document.querySelector('#cc')
          
            function to(toEl) {
              // toEl 為指定跳轉到該位置的DOM節點
              let bridge = toEl;
              let body = document.body;
              let height = 0;
              
              // 計算該 DOM 節點到 body 頂部距離
              do {
                height += bridge.offsetTop;
                bridge = bridge.offsetParent;
              } while (bridge !== body)
              
              // 滾動到指定位置
              window.scrollTo({
                top: height,
                behavior: 'smooth'
              })
            }
          
            linkc.addEventListener('click', function () {
              to(cc)
            });
          

          2. 利用 scrollIntoView()

          Element.scrollIntoView() 方法讓當前的元素滾動到瀏覽器窗口的可視區域內。想具體了解 scrollIntoView() 可以看看 MDN 中的介紹。

          下面也直接上代碼

          「html 部分」:

            <a onclick="goTo()">利用 scrollIntoView 跳轉到 d</a>
            <p>-------------分隔線-------------</p>
            <div id="dd">ddd</div>
          

          「js 部分」:

            var dd = document.querySelector('#dd')
          
            function goTo(){
              dd.scrollIntoView()
            }
          

          注意:此功能某些瀏覽器尚在開發中,請參考瀏覽器兼容性表格以得到在不同瀏覽器中適合使用的前綴。由于該功能對應的標準文檔可能被重新修訂,所以在未來版本的瀏覽器中該功能的語法和行為可能隨之改變。

          下面為了方便看效果,把上面的代碼整理在一起。

          <!DOCTYPE html>
          <html lang="en">
          <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <title>Document</title>
            <style>
              div {
                width: 600px;
                height: 300px;
                background-color: pink;
              }
            </style>
          </head>
          <body>
            <a href="#aa">跳轉到以 id 為 aa 標記的錨點 a</a>
            <p>-------------分隔線-------------</p>
            <a name="aa">hhh</a>
            <div id="aa">aa</div>
            <a href="#bb" >跳轉到 name 為 bb 的 a 標簽錨點</a>
            <p>-------------分隔線-------------</p>
            <a name="bb">name 為 bb 的 a 標簽的錨點</a>
            <p>-------------分隔線-------------</p>
            <div>bb</div>
            <a id="linkc">平滑滾動到 c</a>
            <p>-------------分隔線-------------</p>
            <div id="cc">cc</div>
            <a onclick="goTo()">利用 scrollIntoView 跳轉到 d</a>
            <p>-------------分隔線-------------</p>
            <div id="dd">dd</div>
            <p>-------------分隔線-------------</p>
            <div></div>
          </body>
          <script>
            var cc = document.querySelector('#cc')
            var linkc = document.querySelector('#linkc')
          
            function to(toEl) {
              //ele為指定跳轉到該位置的DOM節點
              let bridge = toEl;
              let body = document.body;
              let height = 0;
              do {
                height += bridge.offsetTop;
                bridge = bridge.offsetParent;
              } while (bridge !== body)
          
              console.log(height)
              window.scrollTo({
                top: height,
                behavior: 'smooth'
              })
            }
          
            linkc.addEventListener('click', function () {
              to(cc)
            });
          
          </script>
          <script>
            var dd = document.querySelector('#dd')
          
            function goTo(){
              dd.scrollIntoView()
            }
          </script>
          </html>
          

          效果圖:

          tml頁面設置動態金額滾動效果!

          一開始加載頁面,數字都會過渡滾動到具體數字上!

          代碼:

          html:

          css:

          js:


          主站蜘蛛池模板: 女女同性一区二区三区四区| 风流老熟女一区二区三区| 国产精品特级毛片一区二区三区| 日本在线电影一区二区三区| 国产精品成人免费一区二区| 午夜视频一区二区三区| 国产成人一区二区三区精品久久| 亚洲高清成人一区二区三区| 色老板在线视频一区二区| 搡老熟女老女人一区二区| 国产欧美一区二区精品仙草咪| 国产成人久久一区二区三区| 一区二区视频在线免费观看| 国产精品视频第一区二区三区| 亚洲一区精品视频在线| 日韩视频一区二区| 中文字幕精品无码一区二区三区| 农村乱人伦一区二区| 国模精品一区二区三区视频| 久久精品综合一区二区三区| 在线视频一区二区三区| 精品一区二区三区在线视频观看 | 免费播放一区二区三区| 一区二区传媒有限公司| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 国产精品无码一区二区三级| 麻豆AV无码精品一区二区| 天天爽夜夜爽人人爽一区二区| 久久精品一区二区三区日韩| 精品一区二区91| 精品无码一区二区三区在线| 合区精品久久久中文字幕一区| 一区二区三区四区免费视频| 成人在线一区二区| 国产午夜精品片一区二区三区| 亚洲国产专区一区| av一区二区三区人妻少妇| 国产suv精品一区二区33| 日本精品3d动漫一区二区| 亚洲美女视频一区二区三区| 丰满岳乱妇一区二区三区|