如何使用JavaScript滚动到页面顶部?滚动条立即跳到页面顶部也是可取的,因为我不希望实现平滑滚动。
当前回答
<script>
$(function(){
var scroll_pos=(0);
$('html, body').animate({scrollTop:(scroll_pos)}, '2000');
});
</script>
编辑:
$('html, body').animate({scrollTop:(scroll_pos)}, 2000);
另一种上下边距滚动方式:
window.scrollTo({ top: 100, left: 100, behavior: 'smooth' });
其他回答
如果您确实想要平滑滚动,请尝试以下操作:
$("a[href='#top']").click(function() {
$("html, body").animate({ scrollTop: 0 }, "slow");
return false;
});
这将接受href=“#top”的任何<a>标记,并使其平滑滚动到顶部。
您可以使用javascript的内置函数scrollTo:
函数滚动(){window.scrollTo({顶部:0,行为:“平滑”});}<button onclick=“scroll”>滚动</button>
使用简单的css尝试这个解决方案,只需将css滚动行为:在html和body上平滑,就像我在css中应用的那样。就是这样
document.querySelector('a').onclick=函数(){window.srollTo(0,0)}html,正文{滚动行为:平滑;}一个{背景色:红色;颜色:#fff;边界半径:10px;边距:10px 0;显示:内联块;填充:10px 20px;}<p>自从1500年代以来,Lorem Ipsum就一直是行业的标准伪文本,当时一位不知名的印刷商拿着一把打字机,把它弄乱,做成了一本打字样本书。它不仅存活了五个世纪,而且跨越了电子排版,基本保持不变。20世纪60年代,随着包含Lorem Ipsum段落的Letraset页的发布,以及最近的桌面出版软件Aldus PageMaker(包括Lorem Ipsum版本)的推出,它开始流行</p> <p>自从15世纪以来,Lorem Ipsum一直是行业的标准伪文本,当时一个不知名的打印机拿着一盘打字机,将其打乱,制成一本打字样本书。它不仅存活了五个世纪,而且跨越了电子排版,基本保持不变。20世纪60年代,随着包含Lorem Ipsum段落的Letraset页的发布,以及最近的桌面出版软件Aldus PageMaker(包括Lorem Ipsum版本)的推出,它开始流行</p> <p>自从15世纪以来,Lorem Ipsum一直是行业的标准伪文本,当时一个不知名的打印机拿着一盘打字机,将其打乱,制成一本打字样本书。它不仅存活了五个世纪,而且跨越了电子排版,基本保持不变。20世纪60年代,随着包含Lorem Ipsum段落的Letraset页的发布,以及最近的桌面出版软件Aldus PageMaker(包括Lorem Ipsum版本)的推出,它开始流行</p> <p>自从15世纪以来,Lorem Ipsum一直是行业的标准伪文本,当时一个不知名的打印机拿着一盘打字机,将其打乱,制成一本打字样本书。它不仅存活了五个世纪,而且跨越了电子排版,基本保持不变。20世纪60年代,随着包含Lorem Ipsum段落的Letraset页的发布,以及最近的桌面出版软件Aldus PageMaker(包括Lorem Ipsum版本)的推出,它开始流行</p> <p>自从15世纪以来,Lorem Ipsum一直是行业的标准伪文本,当时一个不知名的打印机拿着一盘打字机,将其打乱,制成一本打字样本书。它不仅存活了五个世纪,而且跨越了电子排版,基本保持不变。20世纪60年代,随着包含Lorem Ipsum段落的Letraset页的发布,以及最近的桌面出版软件Aldus PageMaker(包括Lorem Ipsum版本)的推出,它开始流行</p> <p>自从15世纪以来,Lorem Ipsum一直是行业的标准伪文本,当时一个不知名的打印机拿着一盘打字机,将其打乱,制成一本打字样本书。它不仅存活了五个世纪,而且跨越了电子排版,基本保持不变。20世纪60年代,随着包含Lorem Ipsum段落的Letraset页的发布,以及最近的桌面出版软件Aldus PageMaker(包括Lorem Ipsum版本)的推出,它开始流行</p><a>滚动到顶部</a>
我希望这对你有很大帮助。请告诉我你的想法
许多用户建议同时选择html和body标签以实现跨浏览器兼容性,如下所示:
$('html, body').animate({ scrollTop: 0 }, callback);
如果你指望回调只运行一次,这可能会让你绊倒。它实际上会运行两次,因为您选择了两个元素。
如果这对你来说是个问题,你可以这样做:
function scrollToTop(callback) {
if ($('html').scrollTop()) {
$('html').animate({ scrollTop: 0 }, callback);
return;
}
$('body').animate({ scrollTop: 0 }, callback);
}
这在Chrome$('html')中有效的原因。scrollTop()返回0,但在其他浏览器(如Firefox)中无效。
如果滚动条已经位于顶部,您不想等待动画完成,请尝试以下操作:
function scrollToTop(callback) {
if ($('html').scrollTop()) {
$('html').animate({ scrollTop: 0 }, callback);
return;
}
if ($('body').scrollTop()) {
$('body').animate({ scrollTop: 0 }, callback);
return;
}
callback();
}
试试这个
<script>
$(function(){
$('a').click(function(){
var href =$(this).attr("href");
$('body, html').animate({
scrollTop: $(href).offset().top
}, 1000)
});
});
</script>