SOF,
当我在使用页面锚点击单击链接时,我不希望#BOT
显示在我的网址中,我遇到了一个小问题。
$("a.bottom").click(function() {
window.location = '#BOT';
});
<a class="bottom" href="javascript: void(0);">BOTTOM</a>
<a href="#BOT">BOTTOM</a>
<a id="KEY"></a>
如何阻止它在pageurl栏中添加#BOT
?
答案 0 :(得分:3)
jQuery scrollTo plugin非常擅长这一点。它会将窗口滚动到一个元素而不使用锚点:
$("a.bottom").click(function() {
$.scrollTo($("a[name='#BOT']"));
});
将功能更通用也会很好:
<强>的jQuery 强>
$("a.scrollable").click(function() {
$.scrollTo($("#"+$(this).data("scrollto")));
});
<强> HTML 强>
<a class="scrollable" data-scrollto="BOT">BOTTOM</a>
<a id="BOT"></a>
<a class="scrollable" data-scrollto="KEY">BOTTOM</a>
<a id="KEY"></a>
答案 1 :(得分:2)
这可以使用this question
中讨论的jQuery偏移和动画来完成function scrollToAnchor(aid) {
var aTag = $("a[id='" + aid + "']");
$('html,body').animate({
scrollTop: aTag.offset().top
}, 'slow');
}
$("a.bottom").click(function () {
scrollToAnchor('BOT');
});
小提琴here
答案 2 :(得分:1)
您可以使用window.scrollTo(x,y)
方法滚动页面。哪个不需要刷新页面。
例如:
$("a.bottom").click(function() {
scrollTo(0,100);
});