jQuery中的hash()方法可以用于獲取當(dāng)前URL的hash值。
// 獲取當(dāng)前URL的hash值 var hash = $(location).hash(); console.log(hash); // 輸出類似于:"#section1"
在頁面滾動到某個元素時,我們也可以將其hash值作為錨點,便于用戶的導(dǎo)航。
// 當(dāng)點擊某個元素時,滾動到相應(yīng)的位置并改變URL的hash值 $('a').click(function() { var anchor = $(this).attr('href'); $('html, body').animate({ scrollTop: $(anchor).offset().top }, 1000); $(location).hash(anchor); return false; });
在某些情況下,我們還可以利用hash值來實現(xiàn)頁面狀態(tài)的保存,例如在一個單頁應(yīng)用中切換不同的內(nèi)容區(qū)域時。
// 切換內(nèi)容區(qū)域時改變URL的hash值 $('.section-link').click(function() { var target = $(this).data('target'); $('.section').hide(); $(target).show(); $(location).hash(target); return false; }); // 根據(jù)URL的hash值顯示相應(yīng)的內(nèi)容區(qū)域 $(window).on('load hashchange', function() { var target = $(location).hash(); $('.section').hide(); $(target).show(); });