首页 / 知识
关于 html:JavaScript 将长页面滚动到 DIV
2023-04-15 16:17:00

JavaScript to scroll long page to DIV我有一个长 HTML 页面上的链接。当我单击它时,我希望页面另一部分的 有点像其他语言中的 我已经检查了 谁能帮忙? 老问题,但如果有人通过谷歌找到这个(就像我一样)并且谁不想使用锚或 jquery;有一个内置的 javascriptfunction 可以"跳转"到一个元素;
还有什么更好的;根据 quirksmode 上的兼容性表,所有主流浏览器都支持此功能! 如果你不想添加额外的扩展,下面的代码应该可以使用 jQuery。
JQuery ScrollTo 怎么样 - 请参阅此示例代码
没有花哨的滚动,但它应该带你到那里。 您可以使用上面提到的 示例:
只需将 记住:始终在对象 {} 中使用参数。 如果仍有问题,请访问 https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView 这个方法有详细的文档。 滚动的困难在于,您可能不仅需要滚动页面以显示 div,还可能需要在任意数量的级别上滚动可滚动的 div。 scrollTop 属性可用于任何 DOM 元素,包括文档正文。通过设置它,您可以控制向下滚动的内容。您还可以使用 clientHeight 和 scrollHeight 属性来查看需要多少滚动(当 clientHeight(视口)小于 scrollHeight(内容的高度)时可以滚动。 您还可以使用 offsetTop 属性来确定元素在容器中的位置。 要从头开始构建一个真正通用的"滚动到视图"例程,您需要从要公开的节点开始,确保它位于其父节点的可见部分,然后对父级等重复相同的操作,直到到达顶部。 其中一个步骤看起来像这样(未经测试的代码,不检查边缘情况):
这对我有用
在此处发布答案 - 解决您的问题的相同方法。 编辑:如果你想要一个平滑的滚动,JQuery 的答案非常好——我以前没有看到过这种情况。 我无法在上面的 futtta 回复中添加评论,但为了更流畅的滚动使用:
您需要的属性是 location.hash。例如: 我不知道如何在不使用 dojo 或类似工具包的情况下制作漂亮的滚动动画,但如果您只需要它跳转到锚点,location.hash 应该可以做到。 (在 FF3 和 Safari 3.1.2 上测试) 为什么不用命名锚?
scrollIntoView 方法接受滚动选项来为滚动设置动画。 平滑滚动
没有动画
对于滚动到 DOM 元素的一般情况,有一个 jQuery 插件,但如果性能是一个问题(什么时候不是?),我建议手动进行。这涉及两个步骤: quirksmode 很好地解释了前者背后的机制。这是我的首选解决方案:
它使用从 null 到 0 的强制转换,这在某些圈子里是不恰当的,但我喜欢它:) 第二部分使用
瞧! 我使用了一个轻量级的 javascript 插件,我发现它可以跨设备、浏览器和操作系统工作:zenscroll 如前所述,Element.scrollIntoView() 是一个很好的答案。由于问题说"我在一个长 HTML 页面上有一个链接......"我想提一个相关的细节。如果这是通过功能链接完成的,它可能不会产生滚动到目标 div 的预期效果。例如: HTML:
JavaScript:
单击 Scroll With Link 将在控制台上显示消息,但似乎没有任何效果,因为 一种解决方案是使用标准 JavaScript 正确禁用链接:
现在它将进入 box12 并停留在那里。 scrollTop (IIRC) 是文档中页面顶部滚动到的位置。 scrollTo 滚动页面,使页面顶部位于您指定的位置。 你需要的是一些 Javascript 操作的样式。假设您希望 div 离开屏幕并从右侧滚动,您可以将 div 的 left 属性设置为页面的宽度,然后每隔几秒将其减小一个设定的量,直到它到达您想要的位置。 这应该为您指明正确的方向。 附加:对不起,我以为你想要一个单独的 div 来从某个地方"弹出"(有点像这个网站有时会这样做),而不是将整个页面移动到一个部分。正确使用锚点可以达到这种效果。 我个人发现上面 Josh 的基于 jQuery 的答案是我见过的最好的,并且非常适合我的应用程序……当然,我已经在使用 jQuery……我当然不会包括在内整个 jQ 库只是为了这个目的。 干杯! 编辑:好的...发布后仅几秒钟,我就在我的下方看到了另一个答案(不确定编辑后是否仍在我下方)说要使用: document.getElementById(\\'your_element_ID_here\\').scrollIntoView(); 这可以完美运行,并且比 jQuery 版本的代码少得多!我不知道 JS 中有一个名为 .scrollIntoView() 的内置函数,但它确实存在!因此,如果您想要精美的动画,请使用 jQuery。 Quick n\\'dirty...用这个! 为了平滑滚动,这段代码很有用 如果我错了,请纠正我,但我一遍又一遍地阅读这个问题,仍然认为 Angus McCoteup 是在询问如何将元素设置为 position: fixed。 Angus McCoteup,查看 http://www.cssplay.co.uk/layouts/fixed.html - 如果您希望您的 DIV 表现得像那里的菜单,请查看那里的 CSS |
最新内容
相关内容
linux链接网络命令行?
linux链接网络命令行?,地址,系统,网络,工作,软件,工具,信息,密码,服务,标准,linux常用命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出linux命令下载链接?
linux命令下载链接?,软件,名称,系统,工具,网络,官网,代理,命令,平台,位置,linux命令怎么下载pdf文件方法如下 wget是linux下一个从网络上自动linux系统软链接命令?
linux系统软链接命令?,位置,系统,链接,文件,服务,地址,标准,交通,异常,软件,在linux中如何在当前目录中创建一个到var目录中的软连接?1、软链linux命令行设置语言?
linux命令行设置语言?,系统,管理,环境,国家,工具,电脑,软件,文化,底部,语言,linux命令行下怎样改变语言1、将内容改为:LANG=zh_CN.UTF-8LANGUAGlinux使用命令改语言?
linux使用命令改语言?,系统,工作,管理,电脑,设备,字符集,中文,命令,语言,虚拟机,请问linux虚拟机装好以后怎么把英文改成中文?1、vmware设置中linux创建硬链接命令?
linux创建硬链接命令?,数据,系统,链接,地方,信息,文件,概念,时间,位置,工作,Linux查看—个目录下所有文件,不包括隐藏文件用哪条命令?1、ls命linux检查硬盘的命令?
linux检查硬盘的命令?,系统,信息,检测,情况,命令,工具,电脑,地址,设备,硬盘,linux查看磁盘空间命令查看磁盘空间-du du命令也是检查硬盘使用情c语言写linux命令?
c语言写linux命令?,系统,工具,代码,智能,工作,环境,情况,位置,命令,文件,如何在C语言编程中调用linux系统终端下的命令1、C语言有一个system函linux文件链接命令?
linux文件链接命令?,系统,工作,地址,命令,网络,信息,工具,基础,管理,目录,linux常用命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出目linux汇编语言命令?
linux汇编语言命令?,系统,地址,代码,数据,网络,平台,平均,位置,灵活,工作,汇编语言指令的基本格式是什么1、有以下几种基本格式:标号,又称为指令linux汇编语言命令?
linux汇编语言命令?,系统,地址,代码,数据,网络,平台,平均,位置,灵活,工作,汇编语言指令的基本格式是什么1、有以下几种基本格式:标号,又称为指令linux命令关闭视图?
linux命令关闭视图?,系统,状态,管理,百分比,信息,情况,基础,软件,观察,首次,怎么查看linux正在运行的命令在 Linux 系统中,以下几个命令可以查