如何使用JavaScript滚动到页面顶部?滚动条立即跳到页面顶部也是可取的,因为我不希望实现平滑滚动。
当前回答
<script>
$("a[href='#top']").click(function() {
$("html, body").animate({ scrollTop: 0 }, "slow");
return false;
});
</script>
html格式
<a href="#top">go top</a>
其他回答
使用简单的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>
我希望这对你有很大帮助。请告诉我你的想法
如果您不希望平滑滚动,您可以在启动平滑滚动动画时立即欺骗并停止它……如下所示:
$(document).ready(function() {
$("a[href='#top']").click(function() {
$("html, body").animate({ scrollTop: 0 }, "1");
$('html, body').stop(true, true);
//Anything else you want to do in the same action goes here
return false;
});
});
我不知道它是否被推荐/允许,但它有效:)
你什么时候用这个?我不确定,但也许当您想使用Jquery一键制作一件事情的动画,而不使用动画制作另一件事情时?即打开页面顶部的管理登录面板中的幻灯片,然后立即跳到顶部查看。
动机
这个简单的解决方案在本地工作,并实现了到任何位置的平滑滚动。
它避免了使用锚链接(带有#的链接),在我看来,如果你想链接到一个部分,这些链接是有用的,但在某些情况下不是很舒服,特别是当指向顶部时,这可能会导致两个不同的URL指向同一位置(http://www.example.org和http://www.example.org/#).
解决方案
在要滚动到的标记中添加一个id,例如第一个部分,它回答了这个问题,但id可以放在页面的任何位置。
<body>
<section id="top">
<!-- your content -->
</section>
<div id="another"><!-- more content --></div>
然后,作为一个按钮,您可以使用链接,只需使用如下代码编辑onclick属性即可。
<a onclick="document.getElementById('top').scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'nearest' })">Click me</a>
其中document.getElementById的参数是单击后要滚动到的标记的id。
请检查以下代码,这肯定会有帮助。:)
document.querySelector('.sample-modal .popup-cta').scrollIntoView(true);
document.querySelector('.sample-modal').style.scrollPadding = '50px'; //to move to the top when scrolled up.
你不需要JQuery。只需调用脚本
window.location = '#'
单击“转到顶部”按钮
示例演示:
输出.jsbin.com/fakumo#
PS:当你使用像angularjs这样的现代库时,不要使用这种方法。这可能会破坏URL散列。
推荐文章
- 使用jQuery以像素为整数填充或边距值
- 检查是否选择了jQuery选项,如果没有选择默认值
- Next.js React应用中没有定义Window
- 如何重置笑话模拟函数调用计数之前,每次测试
- 如何强制一个功能React组件渲染?
- 在javascript中从平面数组构建树数组
- 将Dropzone.js与其他字段集成到现有的HTML表单中
- 如何在AngularJS中观察路由变化?
- JavaScript DOM删除元素
- 将dd-mm-yyyy字符串转换为日期
- Javascript复选框onChange
- Javascript函数前导bang !语法
- 如何在页面上遍历所有DOM元素?
- 使用jQuery滚动到一个div
- 在JS/jQuery中触发按键/按键/按键事件?