2017-05-28 117 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>