我有一个基于SkelJS的网站,目前通过在网址上添加#anchor来加载网页的不同部分:
请注意,#blog加载博客页面,滚动位于顶部。在博客页面内,我需要滚动到某篇文章。 如何使用两个锚点,以便像#blog#article_x这样的东西可以使用?我想我必须寻找一种解决方法,因为锚定2个ID是没有意义的,是否有解决方法?
附加说明:
答案 0 :(得分:1)
您可以使用包含页面和元素的哈希。然后拆分然后再加载页面然后滚动,即#blog,someelement
//on page load or wherever you detect the hash
$(function(){
var hash = window.location.hash;
var ele = null;
//Detect if there is a splitable hash
if(hash.indexOf(",") != -1){
var parts = hash.split(",");
hash = parts[0];
ele = jQuery("#"+parts[1]);
}
//whatever function you do to load the blog page
loadPage(hash,ele);
});
function loadPage(page,ele){
//do page loading
$("#page").load("http://someurl.com",function(){
//if there was no second part to the hash
//this will be skipped
if(ele){
$("html,body").animate({
scrollTop: ele.offset().top
},1000);
}
});
}
答案 1 :(得分:0)
考虑到要滚动到的元素的ID是 myelement ,您可以使用以下jquery代码顺利滚动到它。
$("html,body").animate({scrollTop : $("#myelement").offset().top},1000);
答案 2 :(得分:0)
我们可以在具有id或class
时滚动到特定div var $id=window.location.href.split('#')[1];
$('html, body').scrollTop($("#"+$id).offset().top)