重慶分公司,新征程啟航
為企業(yè)提供網站建設、域名注冊、服務器等服務
為企業(yè)提供網站建設、域名注冊、服務器等服務
本文介紹了JS如何實現(xiàn)在頁面上快速定位(錨點跳轉問題),分享給大家,具體如下:
創(chuàng)新互聯(lián)公司是一家專業(yè)提供市中企業(yè)網站建設,專注與網站設計、成都網站設計、H5建站、小程序制作等業(yè)務。10年已為市中眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網站設計公司優(yōu)惠進行中。
1. 錨點跳轉簡介
錨點其實就是可以讓頁面定位到某個位置上的點。在高度較高的頁面中經常見到。
錨點跳轉有兩種形式:
在html 4.0以前,只有使用 標簽的 name 屬性才能創(chuàng)建片段標識符。id 屬性的出現(xiàn),使所有 HTML 或 XHTML 元素都可以是片段標識符。這是因為 id 標識符幾乎可以用在所有的標簽中。 標簽為了能夠和以前的版本相兼容而保留了 name 屬性,同時也可以使用 id 屬性。這些屬性可以相互交換使用,可以把 id 屬性看作是 name 屬性的升級版本。name 和 id 屬性都可以與 href 屬性結合起來使用,這樣一個 標簽就可以同時作為超鏈接和片段標識符使用。
但是這種方法使用了一個空標簽,而且有時候會出現(xiàn)錨點失效。所以建議采用id來綁定錨點,代碼如下:
波輪洗衣機介紹波輪洗衣機介紹
2. 含錨點跳轉的URL地址
window.location.hash
【1】關于#
在頁面的制作中,“#”的符號很常見,并且具有通用性?;旧希浔硎镜暮x是id選擇符。同樣的,在頁面的URL中,#也可以理解為id選擇符之意,也就是頁面跳轉到含URL指向的id標簽處。
例如輸入一個地址https://www.jb51.net/view/121414.htm?pf=1#3
這個地址中末尾有個'#',這個就相當于告訴瀏覽器要跳轉了,#后面跟著的3表示會在https://www.jb51.net/view/121416.htm?pf=1的頁面中尋找符合#3特點的標簽并且執(zhí)行跳轉。
【2】關于空錨點指向
如果URL中的#后面跟隨的字符id在文中找不到,就會有兩種情況:如果是在當前頁面,除了URL地址變化了,其他的不會改變,頁面不會有跳轉;如果是從其他頁面跳轉過來,則頁面會在頂部顯示,'#'基本就是擺設。
【3】window.location.hash
用來獲取或設置頁面的標簽值。https://www.jb51.net/article/22656.htm?dasdsa
3. Jquery下錨點的平滑跳轉。
如果讓頁面平滑滾動到一個id為box的元素處,則JQuery代碼只要一句話,關鍵位置如下:
$('html, body').animate({scrollTop: $('#box').offset().top}, 1000)
JS原生實現(xiàn)。
scrollTo() 方法可把內容滾動到指定的坐標。
scrollTo(xpos,ypos);
4. IE下錨點刷新失效及JQuery下的解決
【1】關于錨點刷新失效
錨點刷新失效就是指當按下刷新鍵F5時,即使此時URL的后面就隨錨點,此錨點也是不起作用的。
【2】在Jquery中,不難實現(xiàn)??梢愿鶕?jù)URL獲取錨點,從而進一步獲得對應錨點對象,然后再讓頁面的滾動高度為其距離頁面
頂部的偏移值就可以了。使得頁面無論是重新載入還是其刷新,其后面的錨點都起作用。
$(function() { var url = window.location.toString(); var id = url.split('#')[1]; if (id) { var t = $('#' + id).offset().top; $(window).scrollTop(t); } })
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。