如何在完全加载页面之前跳转到锚点?

时间:2017-04-05 13:40:13

标签: javascript html anchor pageload preloader

我有一个很长的页面,在网格视图中有大约900张图像。图像分为类别,每个类别都有一个锚点。现在,当我输入:

www.domain.com/grid#1234

链接打开,但显示页面顶部,然后,几秒钟后(页面完全加载所需的时间),它将转到锚点#1234。我想在完全加载页面之前消除那段时间并直接进入锚定位置。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

这是一个有趣的问题。我想你需要在window.onload或jQuery文档准备好之前运行你的javascript。尝试使用javascript从URL中解析哈希片段,然后滚动到该锚点。确保javascript低于要滚动到的锚点,但不在底部,因此不必等待所有这些。如果它仍然不起作用,您可能需要某种“当页面未加载时,滚动到此锚标记”逻辑。我会在所有浏览器中测试这样的东西。

答案 1 :(得分:0)

我用jQuery完成了这个,所以我创建了一个具有一些属性来设置的函数,它还具有默认停止自动滚动的功能,如果url中存在hashtag,则启动它,也可以手动执行。 / p>

代码是:

cv2.cvtColor()

这是一个例子(我不能使用jsfiddle将标签放在url中,所以我取消注释function autoScroll(name,animated,distance){ var scrollDistance = distance; var scrollTarget = $("*[name='"+name+"']"); if(animated){ $('html, body').animate({scrollTop: (scrollTarget.offset().top - scrollDistance)}, 500); } else{ $('html, body').scrollTop(scrollTarget.offset().top - scrollDistance); } } //Stop default hashtag scrolling window.scrollTo(0, 0); //Execute stuff when entire page is loaded $(window).bind("load", function() { //Check if there is a hashtag in URL if(window.location.hash) { //Get hashtag in URL var getHash = window.location.hash.substring(1); //Do the scroll function to the desired section autoScroll(getHash,true,0); } //Do it manually //autoScroll("second",true,0); }); 进行测试。

https://jsfiddle.net/w7kchg4d/2/