2017-07-29 64 views
1

我希望頁面在頁面加載時根據哈希URL平滑滾動到錨點。哈希的jQuery的滾動頁面url

www.domain.com/pagename/#matches

我有這個,但它不工作

var elem = $('#_' + window.location.hash.replace('#', '')); 
if(elem) { 
    $('html,body').animate({ 
      scrollTop: $('#' + elem).offset().top-65 
     }, 1000); 
     return false; 
} 

控制檯錯誤是

語法錯誤,無法識別的表達:#[object Object]

更新

我得到了它與

if(window.location.hash) { 
    var elem = window.location.hash; 
    $('html,body').animate({ 
      scrollTop: $(elem).offset().top-65 
     }, 1000); 
     return false; 
} 

工作然而,當動畫完成,在默認的錨動作踢,因此跳轉的頁面,而忽略了偏移即時試圖實現

+0

份額尤爾完整的代碼你做什麼 – Bhargav

回答

0

如果我的理解你的問題正確,然後檢查是否發現散列,然後從URL中提取它並將其傳遞到scrollTop

if(window.location.hash) { 
     var hash = window.location.hash.substring(1); 
     $(document.body).animate({ 
      'scrollTop': $('#' + hash).offset().top 
     }, 2000); 
} 
+0

謝謝你,其實我得到了它 如果(window.location.hash){ \t \t VAR ELEM = window.location.hash工作; \t \t $( 'HTML,身體')動畫({ \t \t \t scrollTop的:$(ELEM).offset()頂65 \t \t \t},1000); \t \t \t return false; } 麻煩的是,在動畫滾動之後,它仍然執行正常的錨點跳轉,從而消除了嘗試實現的偏移量 – Martin