location.hash没有页面滚动

时间:2017-05-28 16:55:52

标签: javascript hash

我使用window.location.hash从页面上的链接跳转到另一页面上的div。这很好用。但是,当新页面打开时,它首先显示页面顶部,然后向下滚动到div。我用于此的代码如下。

问题:如何更改代码以便立即在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();
    }

1 个答案:

答案 0 :(得分: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>