Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产特黄特色a级在线视频,国产欧美一区二区精品性色,91人人在线

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          HTML跳轉(zhuǎn)到頁面指定位置的幾種方法

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

          一、 純 html 實(shí)現(xiàn)

          1. 利用 id 為標(biāo)記的錨點(diǎn)

          這里作為錨點(diǎn)的標(biāo)簽可以是任意元素。

            <a href="#aa">跳轉(zhuǎn)到 id 為 aa 標(biāo)記的錨點(diǎn)</a>
            <p>-------------分隔線-------------</p>
            <div id="aa">a</div>
          

          2. 利用 a 標(biāo)簽的 name 屬性作為錨點(diǎn)

          這里作為錨點(diǎn)的標(biāo)簽只能是 a 標(biāo)簽。

            <a href="#bb" >跳轉(zhuǎn)到 name 為 bb 的 a 標(biāo)簽錨點(diǎn)</a>
            <p>-------------分隔線-------------</p>
            <a name="bb">name 為 bb 的 a 標(biāo)簽的錨點(diǎn)</a>
            <div id="abb">bbb</div>
          

          注意:當(dāng)以 ' a 標(biāo)簽 name 屬性作為錨點(diǎn) ' 和 ' 利用 id 為標(biāo)記的錨點(diǎn) ' 同時出現(xiàn)(即以 name 為錨點(diǎn)和以 id 為錨點(diǎn)名字相同時),會將后者作為錨點(diǎn)。

          二、 js 實(shí)現(xiàn)

          1. 利用 scrollTo()

          window.scrollTo 滾動到文檔中的某個坐標(biāo)。可提供滑動效果,想具體了解 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 為指定跳轉(zhuǎn)到該位置的DOM節(jié)點(diǎn)
              let bridge = toEl;
              let body = document.body;
              let height = 0;
              
              // 計算該 DOM 節(jié)點(diǎn)到 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() 方法讓當(dāng)前的元素滾動到瀏覽器窗口的可視區(qū)域內(nèi)。想具體了解 scrollIntoView() 可以看看 MDN 中的介紹。

          下面也直接上代碼

          「html 部分」:

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

          「js 部分」:

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

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

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

          <!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">跳轉(zhuǎn)到以 id 為 aa 標(biāo)記的錨點(diǎn) a</a>
            <p>-------------分隔線-------------</p>
            <a name="aa">hhh</a>
            <div id="aa">aa</div>
            <a href="#bb" >跳轉(zhuǎn)到 name 為 bb 的 a 標(biāo)簽錨點(diǎn)</a>
            <p>-------------分隔線-------------</p>
            <a name="bb">name 為 bb 的 a 標(biāo)簽的錨點(diǎn)</a>
            <p>-------------分隔線-------------</p>
            <div>bb</div>
            <a id="linkc">平滑滾動到 c</a>
            <p>-------------分隔線-------------</p>
            <div id="cc">cc</div>
            <a onclick="goTo()">利用 scrollIntoView 跳轉(zhuǎn)到 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為指定跳轉(zhuǎn)到該位置的DOM節(jié)點(diǎn)
              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>
          

          效果圖:

          次我們來說一下,HTML網(wǎng)頁中的定位,有很多小伙伴一定好奇,為什么我們寫的代碼都是按順序羅列的而在網(wǎng)頁的展示效果中,我們的各種樣式,標(biāo)簽,圖片等東西都是出現(xiàn)在網(wǎng)頁的各個位置,網(wǎng)頁看起來很美觀,各種盒模型擺放合理,這是因為在HTML中有定位的能力,今天我們就來學(xué)習(xí)一下。

          position在英語中是位置的意思,而在我們CSS代碼中position也是跟位置有關(guān)的,position有三個屬性值分別為relative(相對定位:相對于自己原來的位置進(jìn)行定位,但保留自己原來的位置,別的元素?zé)o法占用),absolute(絕對定位:相對于有定位的父級進(jìn)行定位,如果沒有則相對于文檔進(jìn)行定位,定位會脫離文檔,不保留原來的位置,會和原來的文檔不在一個層),fixed(位置定位:他的位置不會隨著滑輪的滾動而改變較常見于彈窗廣告,他也會脫離文檔流)。

          我們說完了position,接下來我們就說說他是怎么進(jìn)行定位的,我們有l(wèi)eft,top,right,bottom,五個屬性分別對應(yīng) 距左邊,距上邊,距右邊,距下邊,大家注意到我在每個方向前都加了個字,我們所做的定位是距各個方向的距離而不是移動,例:left:200px,是向右移動200像素,他的意思是距離左邊增加200像素。在我們實(shí)際的編程中一般都不常用bottom,我們知道,滑輪是可以一直往下滑的,所以我們相對于底部定位的話就很困難。

          我們來通過代碼和結(jié)果來看一下:


          沒有定位的樣式


          加了relative


          加了relative的結(jié)果

          上面這個結(jié)果圖看著比例不太對是因為作者截圖沒截好[捂臉]

          我們可以看出貓圖片并沒有移動,而是給兔子圖片留著位置。


          加了absolute


          加了absolute的結(jié)果

          這個結(jié)果我們可以看出貓圖片向前移動了,并沒有保留兔子圖片原來的位置


          加了fixed

          代碼中的<br>是為了使滑輪可以滑動,以便更好的展示效果。

          <script src="https://lf3-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>

          用了fixed的效果展示。

          以上的代碼樣式只對兔子圖片起作用,我沒有給貓?zhí)砑尤魏螛邮剑垐D片只是作為參照物。



          前面文章中寫過類似的文章《手把手教你HTML5實(shí)現(xiàn)根據(jù)LBS定位到商家兩點(diǎn)之間距離多少》,建議有興趣的小伙伴可以看看。

          使用 HTML5 Geolocation API 來構(gòu)建基于地理位置的應(yīng)用~

          各種瀏覽器對HTML5 Geolocation 的支持

          瀏覽器 版本 只支持HTTPS版本 IE 9+ - Edge 12+ - Firefox 3.5+ - Chrome 5+ 50+ Safari 5+ 39+ iOS Safari 3.2+ 10.2+ Android Browser 2.1+ 56+ Chrome for Android 57+ 57+ UC Browser for Android 11.4+ -

          出于安全考慮,部分瀏覽器只允許通過HTTPS協(xié)議使用 Geolocation API。在HTTP協(xié)議下使用Geolocation API 瀏覽器會拋出異常,在開發(fā)階段,127.0.0.1和localhost 等本地域在兩種協(xié)議下均可使用。

          Geolocation API 通過 navigator.geolocation 全局對象進(jìn)行訪問,第一次訪問的時候會詢問用戶是否允許共享位置。

          判斷瀏覽器是否支持 Geolocation API

                  // 判斷瀏覽器屬否支持獲取位置
                  if(navigator.geolocation){
                      console.log("可以獲取");
                  }else{
                      console.log("不支持");
                  }
          

          實(shí)例代碼如下:

          <!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>
              獲取用戶地理位置
              <input type="button" value="點(diǎn)擊獲取位置" id="btn">
              <script>
                  let btnBtn = document.getElementById('btn')
                  btnBtn.onclick = () => { // 點(diǎn)擊事件
                          getAdd()
                      }
                      // 成功回調(diào)
                  let success = (position) => {
                          console.log(`獲取位置成功:${position.coords}`);
                          console.log(position.coords); // 獲取坐標(biāo)信息
                          // coords的常用屬性
                          console.log(position.coords.latitude); // 獲取坐標(biāo)緯度
                          console.log(position.coords.longitude); // 獲取坐標(biāo)經(jīng)度
                          console.log(position.coords.accuracy); // 獲取坐標(biāo)精度,單位為米
                          console.log(position.timestamp); // 獲取位置的時間戳
          
                      }
                      // 失敗回調(diào)
                  let error = (positionErr) => {
                      console.log(`獲取位置失敗:${positionErr.code}+${positionErr.message}`);
                  }
          
                  let options = {
                      enableHightAccuracy: false, // 獲取高精度的位置信息,可能會增加響應(yīng)時間,默認(rèn)是false
                      timeout: 30000, // 設(shè)置超時時間,單位毫秒,如果到達(dá)設(shè)定的時間沒獲取到信息則回觸發(fā)失敗回調(diào),默認(rèn)值為0,無限大
                      maximumAge: 0 // 設(shè)置用戶位置信息緩存的最大時間
                  }
                  let getAdd = () => {
                      navigator.geolocation.getCurrentPosition(success, error, options)
                  }
          
          
                  // 判斷瀏覽器屬否支持獲取位置
                  if(navigator.geolocation){
                      console.log("可以獲取");
                  }else{
                      console.log("不支持");
                  }
              </script>
          </body>
          
          </html>
          

          當(dāng)獲取位置失敗時,會調(diào)用失敗回調(diào)(error函數(shù))。返回的參數(shù)<positionErr.code 標(biāo)識錯誤的原因><positionErr.message錯誤信息描述> positionErr.code 值

          • UNKNOWN_ERROR(0): 其他錯誤
          • PERMISSION_DENIED(1): 用戶拒絕分享位置信息
          • POSITION_UNAVAILABLE(2): 獲取用戶位置信息失敗
          • TIMEOUT(3): 獲取用戶位置信息超時

          推薦文章

          《手把手教你HTML5實(shí)現(xiàn)根據(jù)LBS定位到商家兩點(diǎn)之間距離多少》
          作者:藍(lán)海00
          鏈接:https://www.jianshu.com/p/d0b0b6120055


          主站蜘蛛池模板: 国产自产V一区二区三区C| 无码人妻精品一区二区三区99仓本 | 老熟妇仑乱一区二区视頻| 国产微拍精品一区二区| 久久精品国产一区| 久久久久女教师免费一区| 国产色欲AV一区二区三区| 中文字幕乱码人妻一区二区三区| 看电影来5566一区.二区| 美女福利视频一区二区 | 色噜噜一区二区三区| 无码中文人妻在线一区| 精品无人区一区二区三区在线| 久久精品国产一区二区三区肥胖| 国产成人无码AV一区二区在线观看| 国产传媒一区二区三区呀| 亚洲性色精品一区二区在线| 精品无码一区二区三区爱欲九九 | 国产成人精品一区二三区在线观看 | 久久久无码精品人妻一区| 亚洲V无码一区二区三区四区观看| 成人午夜视频精品一区| 国产伦一区二区三区高清| 一区二区高清在线观看| а天堂中文最新一区二区三区| 国产传媒一区二区三区呀| 国产一区二区三区免费在线观看| 天堂一区二区三区在线观看| 韩国理伦片一区二区三区在线播放| 精品视频一区二区三区免费| 狠狠综合久久AV一区二区三区| 亚洲线精品一区二区三区| 国产在线视频一区| 国产精品伦一区二区三级视频| 无码少妇一区二区三区| 亚洲一区二区观看播放| 国产一区二区三区在线电影| 波多野结衣在线观看一区二区三区| 亚洲午夜精品第一区二区8050| 久久精品国产一区二区三区不卡| 亚洲日韩激情无码一区|