Javascript jquery:如何在不滚动的情况下跳转到位置
我编写了以下函数,当单击href时,该函数会指向某个锚定位置:Javascript jquery:如何在不滚动的情况下跳转到位置,javascript,jquery,Javascript,Jquery,我编写了以下函数,当单击href时,该函数会指向某个锚定位置: $("a").click(function() { href="#myAnchor"; var fromTop = 95; if(href.indexOf("#") == 0) { var $target = $(href); if($target.length) { $('html, body').animate({ scrollTop: $target.offset()
$("a").click(function() {
href="#myAnchor";
var fromTop = 95;
if(href.indexOf("#") == 0) {
var $target = $(href);
if($target.length) {
$('html, body').animate({ scrollTop: $target.offset().top - fromTop });
return false;
}
}
};
return false;});
如何更改此功能,使我无需“滚动”即可跳转到锚点。单击href时,它应该直接混在myanchor位置 这是HTML的标准功能,称为“书签”,无需JS。首先将书签放在希望浏览器滚动到的位置:
<a name="my-bookmark"></a>
更新 如果需要在页面顶部进行填充,则可以使用
方法将它们放置在目标上方所需的距离处,尽管这可能会变得很难保持
您可以在该场景中使用此JS:
$("a.bookmark").click(function(e) {
e.preventDefault();
var href = $(this).attr(href);
var fromTop = $('#fixed-header').height();
$(window).scrollTop($(href).offset().top - fromTop)
});
默认情况下,animate()
的速度设置为“400ms”。您应该将其设置为0:
$('html, body').animate({ scrollTop: $target.offset().top - fromTop }, 0);
编辑:或使用@Rory McCrossan解释的
scrollTop()
以下是一种不使用任何脚本的简单方法:
将div的id分配给要跳转到的位置
<a href='#jumpto'>Jump</a>
<div id='jumpto'></div>
使用
.scrollTop()
而不是动画制作方法:
$(document).scrollTop($target.offset().top - fromTop);
没有jQuery,仅HTML
|
<。
aaa
<。
bbb
<
<
<
<
<
<
<
<
<
<<
<<
<<
<<
<<
<
<<
<
<
<<
<<<
<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<a href='#jumpto'>Jump</a>
<div id='jumpto'></div>
$(document).scrollTop($target.offset().top - fromTop);