我有一个很长的页面,在网格视图中有大约900张图像。图像分为类别,每个类别都有一个锚点。现在,当我输入:
www.domain.com/grid#1234
链接打开,但显示页面顶部,然后,几秒钟后(页面完全加载所需的时间),它将转到锚点#1234。我想在完全加载页面之前消除那段时间并直接进入锚定位置。
感谢您的帮助!
答案 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);
});
进行测试。