2017-05-28 109 views
-2

我已經使用window.location.hash從一個頁面上的鏈接跳轉到另一個頁面上的div。這很好。但是,當新頁面打開時,它首先顯示頁面的頂部,然後滾動到div。我用於此的代碼如下所示。location.hash沒有頁面滾動

問題:如何更改代碼以便新頁面立即加載到div上,而無需從頁面頂部滾動(或跳轉)到div?

if (window.location.hash) { 
     setTimeout(function() { 
      $('html, body').scrollTop(0).show(); 
      $('html, body').animate({ 
       scrollTop: $(window.location.hash).offset().top 
       }, 1000) 
     }, 0); 
    } 
    else { 
     $('html, body').show(); 
    } 
+0

您是否自己編寫了該代碼?那麼你應該知道scrollTop和animate在這裏實現了什麼,對吧? – CBroe

+1

只需刪除代碼... –

+1

聽起來好像你只是想要一個錨鏈接的默認行爲,用於跳轉到不同頁面上的特定元素。如果是這樣,解決方案將刪除此腳本,其目的只是干擾所述默認行爲... – CBroe

回答

0

我這樣做是因爲它們是加載過程中頁面上的超時。當我以正常的方式進行操作時,因此如果沒有此代碼,則由於超時而無法運行。有什麼建議麼?

<script type="text/javascript"> 
var myVar; 
function loadpage() { 
myVar = setTimeout(showPage, 500); 
} 

function showPage() { 
    document.getElementById("loader").style.display = "none"; 
    document.getElementById("myDiv").style.display = "block"; 
    google.maps.event.trigger(map, 'resize') 
    map.setCenter(new google.maps.LatLng(50.849348, 4.7356652)) 
    if (window.location.hash) { 
     setTimeout(function() { 
      $('html, body').scrollTop(0).show(); 
      $('html, body').animate({ 
       scrollTop: $(window.location.hash).offset().top 
       }, 0) 
     }, 0); 
    } 
    else { 
     $('html, body').show(); 
    } 
} 
</script>