javascript - 单击某个 css 类或 ID 时使用户的视口向上滚动
问题描述
(作为参考,我正在为 Wordpress 使用 DIVI,尝试使用代码块来完成此操作)
我有一个带有 7 个步骤的滑块/轮播,所有步骤都有“下一个”和“上一个”按钮供用户使用。当用户点击下一步进入第 2 步时,由于第 1 步窗口大于第 2 步,这意味着他们的窗口现在位于第 2 步下方(“下一个”和“上一个”按钮位于每个滑块的底部)。
按钮当前使用 # 链接来打开下一个运行良好的滑块,但我需要一个函数来实现它,因此当单击其中一个链接(都具有类“.rv-welcome-stagebutton”)时,它会移动窗口回到旋转木马的顶部。
因此用户不必不断地滚动回到每个阶段的顶部。
我尝试使用页面上的当前代码,但没有运气。
TLDR:我想要实现的目标 -
- 用户单击带有 css 类“.rv-welcome-stagebutton”的链接
- 将窗口滚动到 ID 为“#rv-welcomeslider-container”的部分顶部
[页面动图:https://i.imgur.com/fQiFjnK.gif]
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
jQuery(document).ready(function(){
$('.rv-welcome-stagebutton').click(function(){
window.scroll({
top: 0,
left: 0,
behavior: 'smooth'
});} }
</script>
解决方案
编辑:我在上次回复中犯了一些错误,我现在修复它,试试看。
我想我可以为你解决这个问题。您已经在使用 jQuery,这很好。
首先,我们要看看页面顶部和部分顶部之间的距离(#rv-welcomeslider-container)。
我们可以使用 jQuery 来执行此操作offset().top
,它将返回您的部分距离文档顶部有多少。
所以,我们写:let getSectionCoords = $("#rv-welcomeslider-container").offset().top;
现在我们要做的就是click
为每个按钮添加一个事件(.rv-welcome-stagebutton),并使其向右滚动到轮播部分的顶部(现在是 getSectionCoords)。
所以,这是最终的代码:
let getSectionCoords = $("#rv-welcomeslider-container").offset().top;
$('.rv-welcome-stagebutton').on('click',function() {
$('body').animate({scrollTop : getHeadingThree}, '500');
});
让我知道它是否有效:)
推荐阅读
- python - 如何在 Python 中缩放 numpy 矩阵?
- python - pip install jupyterlab 错误:命令出错,退出状态为 1:
- java - 我可以让 maven 使用这个包结构运行吗?我应该如何改变它?
- scala - 使用 @ 指定 Scala 形式的电子邮件
- assembly - 尝试编写准系统 64 位内核时“重定位被截断以适应”
- python - 斐波那契数列之和的代码没有给出正确的和
- ssas - 分区数据与数据源视图
- r - 如何计算每行数据集中唯一元素的存在并将它们列出在r中
- drupal - 在 drupal 8 安装上呈现实体字段标记
- dns - 为什么 `getaddrinfo` 不支持别名?