<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        解決js頁面滾動效果scrollTop在FireFox與Chrome瀏覽器間的兼容問題的方法_javascript技巧

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 21:46:46
        文檔

        解決js頁面滾動效果scrollTop在FireFox與Chrome瀏覽器間的兼容問題的方法_javascript技巧

        解決js頁面滾動效果scrollTop在FireFox與Chrome瀏覽器間的兼容問題的方法_javascript技巧:最近在做博客的目錄功能,發(fā)現(xiàn)一個在現(xiàn)代瀏覽器間的一個bug,或是稱之為差異,即頁面滾動值(scrollTop)的獲取與設(shè)定。 在此之前先說一下關(guān)于頁面元素的坐標(biāo)獲取,這張圖的經(jīng)典性不必再提。 實(shí)現(xiàn)滾動到某位置功能 一個最主要的功能就是實(shí)現(xiàn)點(diǎn)擊標(biāo)題頁面滾動
        推薦度:
        導(dǎo)讀解決js頁面滾動效果scrollTop在FireFox與Chrome瀏覽器間的兼容問題的方法_javascript技巧:最近在做博客的目錄功能,發(fā)現(xiàn)一個在現(xiàn)代瀏覽器間的一個bug,或是稱之為差異,即頁面滾動值(scrollTop)的獲取與設(shè)定。 在此之前先說一下關(guān)于頁面元素的坐標(biāo)獲取,這張圖的經(jīng)典性不必再提。 實(shí)現(xiàn)滾動到某位置功能 一個最主要的功能就是實(shí)現(xiàn)點(diǎn)擊標(biāo)題頁面滾動
        最近在做博客的目錄功能,發(fā)現(xiàn)一個在現(xiàn)代瀏覽器間的一個bug,或是稱之為差異,即頁面滾動值(scrollTop)的獲取與設(shè)定。

        在此之前先說一下關(guān)于頁面元素的坐標(biāo)獲取,這張圖的經(jīng)典性不必再提。

        實(shí)現(xiàn)滾動到某位置功能

        一個最主要的功能就是實(shí)現(xiàn)點(diǎn)擊標(biāo)題頁面滾動,因?yàn)槲覀円獫L動到頁面某個標(biāo)題,所以需要計(jì)算出滾動這個元素的具體絕對位置,而常用的offsetTop是獲取到當(dāng)前元素與之最近的決定其定位的元素的偏移量,此處不適用。

        此處應(yīng)使用瀏覽器原生提供的 getBoundingClientRect 接口,此函數(shù)返回的是元素距離瀏覽器各邊距的絕對位置,跟是什么定位類型的無關(guān),非常適合制作頁面滾動效果。

        獲取滾動需要的數(shù)據(jù), body 的 scrollTop 即頁面已經(jīng)被滾動所隱藏的高度,再根據(jù)上面提到的接口獲取元素距離瀏覽器頂部的距離,可以算出需要的滾動的高度,關(guān)系圖如下:

        遂,頁面要滾動到的位置就是:

        代碼如下:document.body.scrollTop+element.getBoundingClientRect().top;

        這里順帶說下getBoundingClientRect().top 獲取的元素在被滾動隱藏與非滾動時的區(qū)別:

        如上圖可以看出,即使要滾動到的元素部分在瀏覽器邊界外,獲取到的top即為負(fù)數(shù),遂計(jì)算出來的頁面高度依然是正確的。

        點(diǎn)擊目錄跳轉(zhuǎn)的功能就做完了,至今為止都很完美。

        FireFox與Chrome的scrollTop的兼容問題

        直到我今天在FireFox測試時發(fā)現(xiàn),火狐下頁面滾動的跳轉(zhuǎn)功能無法使用。

        1、原生接口測試

        這里先提一下:

        document.documentElement 即 元素,而 document.body 即 元素。

        測試結(jié)果,在火狐上只能通過html元素來獲取和設(shè)定頁面滾動高度,而在谷歌上反之只能用body元素來獲取和設(shè)定。

        2、jquery接口測試

        上面是使用原生的scrollTop屬性來獲取與設(shè)定,而jquery自己也實(shí)現(xiàn)了對scrollTop屬性的封裝,可以試試他的兼容性。

        發(fā)現(xiàn)采用 $(document) 可以實(shí)現(xiàn)對獲取和設(shè)定scrollTop的兼容,大喜。

        3、scrollTop動畫實(shí)現(xiàn)測試

        雖然實(shí)現(xiàn)了兼容,但為了有更好的效果,我希望采用動畫的方式滾動到頁面的某位置,而不是直接跳轉(zhuǎn),這里采用jquery的 animate 函數(shù)來實(shí)現(xiàn)。

        發(fā)現(xiàn)雖然可以采用$(document)來實(shí)現(xiàn)獲取和設(shè)定,但動畫效果都無法使用,還是只能用body元素和html元素來實(shí)現(xiàn)。

        最終解決方案

        遂最完美的實(shí)現(xiàn)方案是:

        獲取或直接設(shè)定當(dāng)前頁面滾動高度:

        代碼如下:$(document).scrollTop();//獲取,兼容火狐谷歌

        有動畫效果的設(shè)定當(dāng)前頁面高度:

        代碼如下:$("body,html").animate({ scrollTop: ... });//動畫滾動效果,兼容火狐谷歌

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        解決js頁面滾動效果scrollTop在FireFox與Chrome瀏覽器間的兼容問題的方法_javascript技巧

        解決js頁面滾動效果scrollTop在FireFox與Chrome瀏覽器間的兼容問題的方法_javascript技巧:最近在做博客的目錄功能,發(fā)現(xiàn)一個在現(xiàn)代瀏覽器間的一個bug,或是稱之為差異,即頁面滾動值(scrollTop)的獲取與設(shè)定。 在此之前先說一下關(guān)于頁面元素的坐標(biāo)獲取,這張圖的經(jīng)典性不必再提。 實(shí)現(xiàn)滾動到某位置功能 一個最主要的功能就是實(shí)現(xiàn)點(diǎn)擊標(biāo)題頁面滾動
        推薦度:
        標(biāo)簽: 瀏覽器 解決 滾動
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 久久精品免费观看| aaa毛片免费观看| 91麻豆最新在线人成免费观看 | 亚洲国产无套无码av电影| www在线观看播放免费视频日本| 亚洲男女内射在线播放| 国产精品一区二区三区免费| 国产成人精品日本亚洲专区61| 国产精品内射视频免费| 亚洲国产精彩中文乱码AV| 久久99青青精品免费观看| 亚洲福利视频一区二区三区| 免费A级毛片无码无遮挡内射| 亚洲jjzzjjzz在线观看| 成年女人毛片免费播放人| 亚洲AV无码一区二区三区久久精品| 国产美女无遮挡免费视频| 一级毛片在线播放免费| 久久精品国产精品亚洲精品| 免费国产黄网站在线观看| 国产成人亚洲精品| 亚洲成av人片一区二区三区| 岛国岛国免费V片在线观看| 亚洲第一香蕉视频| 国产美女a做受大片免费| 三级黄色在线免费观看| 亚洲国产美女精品久久久久| 在线免费观看一级片| 国产特黄一级一片免费 | 久久99精品视免费看| 亚洲午夜久久久精品电影院| 永久免费bbbbbb视频| 最近的2019免费中文字幕| 亚洲另类精品xxxx人妖| 四虎永久成人免费| 久久国产精品免费专区| 亚洲精品无码高潮喷水A片软| 亚洲欧洲中文日韩av乱码| 2019中文字幕免费电影在线播放| 亚洲精品无码人妻无码| 亚洲激情中文字幕|