我有一个链接按钮转到另一个页面,它可以工作,但我希望链接转到该页面的特定部分。我知道我应该使用jquery,因为某些原因它没有跳到我希望它跳转到的部分。
我的按钮链接:
<div class="btn_holder top-slide"><a
href="http://testurl.com/media#isabelo"><p class="leeu_button">READ
MORE</p></a>
</div>
我目前已经滚动到页面底部而不是id =&#34; isabelo&#34;的部分。所以这个jquery有效,但它不是我想要的。希望你明白。
$(document).ready(function(){
//check if hash tag exists in the URL
if(window.location.hash) {
$("html, body").animate({ scrollTop: $(document).height() }, 1000);
1000);
} });
我也已经尝试了这个(根本不用):
$(document).ready(function(){
//check if hash tag exists in the URL
if(window.location.hash) {
$('html, body').animate({ scrollTop: $("#isabelo").offset().top }, 1000);
}
});
我尝试链接的网页有一个id为id =&#34; isabelo&#34;
<div class="content_holder terms_row" id="isabelo">
答案 0 :(得分:2)
<a href="http://www.example.com/some-page-or-other.html#exactline">Click here</a>
您要跳转到的位置应具有name="exactline"
属性
答案 1 :(得分:2)
我的解决方案:
$(document).ready(function(){
//check if hash tag exists in the URL
if(window.location.hash) {
setTimeout(function(){
$('html, body').animate({ scrollTop: $("#isabelo").offset().top },
1000);
},1000);
}
});
稍后使用超时功能加载它。解决了:))
答案 2 :(得分:1)
你不应该为此而需要jquery。您应该能够链接到&#34; media / pagename.html#isabelo&#34;用直接的HTML。但是你错过了页面名称。那,你需要在那里有一个NAME标签以及ID。
答案 3 :(得分:1)
好吧,我在同一页面尝试了它并且它有效。我不是jquery的专家,但如果:
$("html, body").animate({ scrollTop: $(document).height() }, 1000);
但 isabelo 没有,可能是因为浏览器还没有加载 isabelo 所在的html。尝试调试以查看您是否在该点上有 isabelo 元素,或者它仍未加载。
我发现的其他不同之处在于,在第一个示例中,您将两次“1000”
$(“html,body”)。animate({scrollTop:$(document).height()}, 1000); 的 1000); 强>
在第二个
$('html,body')。animate({scrollTop:$(“#isabelo”)。offset()。top}, 1000);
但我认为这是一个复制/粘贴的错误,因为在第一个例子中我没有找到它的感觉,但它的工作正如你所说。
答案 4 :(得分:0)
setInterval比setTimeout更好。如果您的页面在1秒内没有加载,那么setTimeout中的代码将无法按预期工作。但是,如果每秒都有一个间隔,并且一旦获得该元素就清除间隔,这将始终有效。
$(document).ready(function(){
//check if hash tag exists in the URL
if(window.location.hash) {
a = setInterval(function(){
if($("#isabelo").length) {
$('html, body').animate({ scrollTop: $("#isabelo").offset().top },
1000);
clearInterval(a);
}
},1000);
}
});