单击时滚动到 div,最后循环

2024-03-09

我想做的是在屏幕右下角引入一个按钮,用户可以单击该按钮滚动到下一个“部分”div。一旦到达 html 中的最后一个 div,它应该循环回到第一个 divsection div.

我提出的解决方案是,当页面最初加载时,它会收集类名称为“section”的项目数组,然后当用户点击按钮时,它会滚动页面循环浏览它们。这可能吗?

这是我尝试使用的滚动 JavaScript 的链接。

HTML

<!DOCTYPE html>
<html>
<body>
<script src="https://code.jquery.com/jquery-1.7.2.js"></script>

<script>
$(document).ready(function(){
    $('.btnPrev').click(function() {
       var target;
       $(".section").each(function(i, element) {
         target = $(element).offset().top - 20;
         if (target - 40 > $(document).scrollTop()) {
           return false; // break
         }
       });
       $("html, body").animate({scrollTop: target}, 700);
    });
    $('.btnNext').click(function() {
       var target;
       $(".section").each(function(i, element) {
         target = $(element).offset().top - 20;
         if (target - 40 > $(document).scrollTop()) {
           return false; // break
         }
       });
       $("html, body").animate({scrollTop: target}, 700);
    });
});
</script>

<style type="text/css">
    html {background-color: rgb(40,40,40);}
	.section {background-color:lightblue;margin: 40px 100px; padding:20px; height:300px;}
    .rowA {background-color:lightgreen;}

    /*Scroll Buttons*/
    .btnScroll {position: fixed; background-color: rgba(0,0,0,.5); width:40px; height:40px; text-align:center; line-height:40px; color:white; border-radius:4px;}
    .btnScroll:hover {background-color: rgba(255,255,255,.2); cursor:pointer;}
    .btnScroll:active {background-color: rgba(255,255,255,.5); cursor:pointer; selection:none;}
    .btnPrev {bottom: 70px; right: 20px;}
    .btnNext {bottom: 20px; right: 20px;}
    .noselect {
        -webkit-touch-callout: none; 
        -webkit-user-select: none; 
        -khtml-user-select: none; 
        -moz-user-select: none; 
        -ms-user-select: none;
        user-select: none;
    }
</style>


<script src="rats.js"></script>

<div class="section rowA">Content Here</div>
<div class="section rowB">Content Here</div>
<div class="section rowA">Content Here</div>
<div class="section rowB">Content Here</div>
<div class="section rowA">Content Here</div>
<div class="section rowB">Content Here</div>
<div class="section rowA">Content Here</div>

<div class="btnScroll btnPrev noselect">&#8593;</div>
<div class="btnScroll btnNext noselect">&#8595;</div>

</body>
</html>

我采取了稍微不同的方法来回答你的问题。我将代码更改为:

1)用a初始化第一个元素.selected class.

2) 在寻呼机上单击,移动.selected将指定元素向上或向下分类。

3) 将类移动到新选择的元素后,滚动到该元素(具有类的元素.selected).

这是结果的小提琴:

http://jsfiddle.net/rt13qnmm/ http://jsfiddle.net/rt13qnmm/

我们现在要做的就是管理位置.selected类并根据其新位置滚动。

所有动画均使用自定义函数完成scrollToSelected(offset)

// Perform animation to the '.selected' class
function scrollToSelected(offset){
    $('html,body').stop(true).animate({
        scrollTop:$('.selected').offset().top + offset
    }, 'slow');
}

(这可以通过删除硬编码来进一步解耦.selectedjQuery 选择器并将其作为参数传递给函数,从而允许您滚动到整个站点的任何元素)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单击时滚动到 div,最后循环 的相关文章

  • 使用 jquery 远程图像属性

    目前我正在尝试获取远程图像宽度 高度 我正在开发一个链接共享模块 就像当你在 Facebook 上粘贴链接时 你可以看到标题 描述和图像 所以我尝试使用 php getimagesize 来获取图像宽度 高度 但速度非常慢 所以我正在考虑使
  • 如何使用 JavaScript 创建链接?

    我有一个标题字符串和一个链接字符串 我不知道如何将两者放在一起以使用 JavaScript 在页面上创建链接 任何帮助表示赞赏 我试图解决这个问题的原因是因为我有一个 RSS 源并且有一个标题和 URL 列表 我想将标题链接到 URL 以使
  • @media语法/可能的组合

    我见过其中一些 media print media screen handheld print projection media all media all and property value media screen and prope
  • 在表格上使用上下文样式将点边框应用于特定单元格

    我以前有过问了一个问题 https stackoverflow com questions 6326266 issue with applying dotted border to cells in table design在这个问题上 你
  • 谷歌地图初始化无法使用选项卡

    我正在尝试在选项卡单击事件上初始化 Google 地图 因为目前我得到的地图如下 My Code function render map This function will render a Google Map onto the sel
  • 悬停此元素时隐藏元素后的伪元素

    我的菜单垂直放置在页面左侧和菜单之间 li 我有一个 after那是一个分隔符 我想要的是当我悬停元素本身 如果它是第一个元素 时隐藏 after 元素 或者当它是中间元素时隐藏上面和底部的元素 如果它是最后一个子元素 则隐藏 after前
  • 如何格式化 Highcharts 的 (x,y) 对数据的日期时间

    我的序列化方法会产生如下所示的日期时间字符串 2014 07 09T12 30 41Z 为什么下面的代码不起作用 function container highcharts xAxis type datetime series data x
  • 删除子元素上的 CSS 过滤器

    我的 CSS 代码有问题 正如您所看到的 我在 li 元素上有过滤器 但它覆盖了其他元素 我需要使其他两个元素没有过滤器 有没有可能这样做 main width 300px height 300px background color blu
  • 最大宽度调整以适应文本?

    不是最好的标题 但无论如何 我有一个元素max width和一些文字 如果文本长度超过一行所能容纳的长度 我会得到以下结果 My text here hello everyone 换句话说 它占据了完整的最大宽度 但由于单词向下移动 右侧有
  • focusout 事件后,Mouseleave 事件在 Firefox 中无法持续触发

    我正在运行以下代码
  • JQuery Mobile 与 MVC 的链接

    我正在使用 ASP NET MVC 3 和 Razor UI 设置 JQuery 移动网站 我正在生成我的链接 例如 a href See Group 2 a 假设我从 Home Index 访问它 我遇到的问题是 当我点击链接时 它会出现
  • HTML5 MediaSource 适用于某些 mp4 文件,但不适用于其他文件(相同的编解码器)

    我正在玩 MediaSource API 代码直接取自 Mozilla 的示例页面 https developer mozilla org en US docs Web API MediaSource endOfStream https d
  • jQuery:处理 getJSON() 中的错误?

    使用 jQuery 时如何处理 500 错误getJSON http api jquery com jQuery getJSON 有几个关于错误处理的问题getJSON and https stackoverflow com questio
  • Javascript split 不是一个函数

    嘿朋友们 我正在使用 javascript sdk 通过 jQuery facebook 多朋友选择器在用户朋友墙上发布信息 但是我收到此错误friendId split 不是函数 这是我的代码 function recommendToFr
  • Jquery一键提交多个同名表单

    我有动态创建的循环表单 我需要一键提交所有表单 我正在遵循下面的代码 你能建议我怎么做吗 谢谢
  • 图像背景不透明度不影响边框

    如何设置背景不透明度而不影响边框线不透明度 我找到的解决方案没有帮助 div class selected img src assets img image product 1 thumbnail jpg alt product 1 thu
  • 在移动设备上滚动

    这个问题更多的是一个建议研究 我确实希望它对其他人有帮助 并且它不会关闭 因为我不太确定在哪里寻求有关此事的建议 在过去的 6 个月里 我一直在进行移动开发 我有机会处理各种设备上的各种情况和错误 最麻烦的是滚动问题 当涉及到在网站的多个区
  • Chrome//kendoUI/jQuery:超出最大调用堆栈大小

    我正在使用 hottowell 模板来创建 spa 应用程序 并且我从 jquery 中收到了一个很好的错误 基本上我的问题从此刻开始尝试绑定我的视图 viewModelBinder js 来自 durandal 库 viewModelBi
  • HTML 锚点,禁用样式

    我有一些 html 锚链接代码 与文档的其余部分不同 我希望它看起来不是链接 有没有一种简单的方法可以禁用由于将文本包装在锚标记中而引起的样式更改 而不必强行使其相同 即 如果我更改正文字体样式 我不必也更改其他一些 link东西 将颜色设
  • 在 Nexus 7 2013 上更改方向时 CSS 媒体查询不起作用

    我目前正在我的笔记本电脑 台式电脑和 Nexus 7 2013 上测试 CSS 媒体查询 除了 Nexus 7 之外 它们在台式机和笔记本电脑上都运行良好 当我更改方向时 除非刷新页面 否则样式不会应用 例如 以纵向模式握住设备时 页面正常

随机推荐

  • 迭代同步集合

    我在这里问了一个关于迭代 a 的问题Vector 我已经得到了一些好的解决方案的答复 但我读到了另一种更简单的方法 我想知道这是否是一个好的解决方案 synchronized mapItems Iterator
  • 在Python 3中编写一个函数将基数16转换为基数10

    有没有一种简单的方法来修改这段从基数 2 转换为基数 10 的代码 以将基数 16 转换为基数 10 我的目标是构建一个专用的转换函数 而不使用任何内置的 Python 功能进行计算 谢谢 BinaryVal int input Enter
  • ARC 中的“[[something keep] autorelease]”相当于什么?

    相当于什么 something retain autorelease in ARC 我遇到一个问题 类 DBRequest 调用我的委托来表示完成 然后 我的委托将 DBRequest 实例设置为 nil 即 dealloc 但是 当堆栈从
  • 双屏 HDMI 输出编程

    在我的搜索中 我发现 Android SDK 目前不支持控制 HDMI 端口活动和处理 HDMI 输出 尽管像摩托罗拉这样的某些设备制造商 不知道是否还有其他制造商也这样做 提供了 API 以实现更好的控制 下面是其中两个的链接 其中双屏链
  • 列出 Android 手机中所有已安装或支持的语言

    如何在 android 中以编程方式获取 语言和输入设置 下列出的所有已安装或支持的语言的列表 我已经使用了 Resources getSystem getAssets getLocales 但它只给了我该语言的代码 如 en en us
  • 如何将 Tomcat 嵌入到 Spring Framework MVC 应用程序中?

    我已经创建了所需的配置 控制器类 但我不清楚应该如何编排这些类来运行 tomcat 实例 我知道对于 Spring Boot 来说 这是使用 SpringApplication run 的问题 但我正在尝试探索 Spring Boot 之前
  • 在解决方案文件上调用自定义 MSBuild 目标

    我有一个解决方案文件 我的解决方案 sln 其中有一个项目 我的项目 vcxproj 我想执行一个自定义目标 我的自定义目标 通过解决方案在我的项目上 它看起来像这样 msbuild MySolution sln t MyCustomTar
  • 可空对象必须有一个值

    异常描述中有一个悖论 可空对象必须有一个值 这就是问题 我有一个DateTimeExtended班级 具有 DateTime MyDataTime int otherdata 和一个构造函数 DateTimeExtended DateTim
  • 契约异步和同步代码

    有很多问题询问是否混合异步和同步代码 大多数答案都表示 为异步方法公开同步包装器以及为同步方法公开异步包装器都是一个坏主意 然而 没有一个答案解决了必须混合异步和同步代码的特定场景 以及如何避免因此而出现的常见陷阱 请参见以下示例 clas
  • 如何设置Winsock UDP套接字?

    我想创建一个仅向客户端发送数据的 Winsock UDP 套接字 我希望内核为我选择一个可用的端口 另一方面 我想指出要使用哪个本地 IP 因为我正在运行一些网卡 我尝试过梳理迷宫般的套接字选项 以及将套接字地址中的端口绑定设置为 0 但均
  • 如何与Azure进行角色间通信?

    我完全不明白如何获得 Azure 角色 无论是 Web 角色还是辅助角色 来与另一个 Azure 角色进行通信 我查看了服务总线中继 其速度令人难以置信 在调试时将数据从一个角色获取到另一个角色大约需要 6 个小时 当我通过在云中运行的 W
  • 转置数据框

    有一种情况我有 gt sample df lt data frame id c 14129 29102 2191 2192 1912 color c blue red green purple blue day c monday wedne
  • 在 WooCommerce 中隐藏缺货相关产品

    在 WooCommerce 中我想隐藏缺货产品来自相关产品在单个产品页面中 是否可以 任何曲目都受到赞赏 这里给出的答案都不适合我 我相信woocommerce output related products args提到的过滤器不接受me
  • 持有自身引用的类

    浏览标准草案 n3242 我在第 9 2 条中发现了这句话 强调我的 非静态 9 4 数据成员不得具有不完整的类型 在 特别是 类 C 不应包含类的非静态成员 C 但是它可以包含一个指针或参考到类的对象 C 由此我认为定义一个这样的类是可以
  • 识别短文本的语言? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个文章列表 每篇文章都有自己的标题和描述 不幸的是 从我使用的来源来看 无法知道它们是用什么语言编写的 此外 文本并非完全用一种
  • 使用Matlab导入另一个.m文件

    我对 Matlab 还很陌生 我在 m 文件中定义了一个函数 我想在另一个 m 文件中的 m 文件中使用该函数 并且我想从命令窗口运行最后一个 m 文件的内容 我应该如何去实现这个目标 EDIT 为了澄清起见 我有一个功能a inside
  • 将时间和日期与此格式 HH.MM mm/dd/yyyy 进行比较。

    是否可以像这样使用军事时间和日期的格式进行比较HH MM mm dd yyyy 例如 1 08 25 06 10 2014 gt 23 18 06 09 2014 结果为 True 因为第 10 天大于第 09 天 2 23 25 06 1
  • Django Include() 在 urls.py 中与两个应用程序

    我相信这是一个简单的问题 但我很难弄清楚为什么这不起作用 我有一个 django 项目 并且添加了第二个应用程序 销售 在第二个应用程序之前 我的 urls py 只是将所有内容路由到第一个应用程序 图表 如下所示 urlpatterns
  • SIGABRT:前提条件失败:导入的节点在读取其值之前已被删除

    自从beta 5 of Xcode 11启动后 我不得不更新代码 你知道该怎么做 然而 有一个奇怪的运行时错误在更改中幸存下来 我无法弄清楚为什么会发生这种情况 我开始尝试将其限制在我的原始代码中 但令人惊讶的是 它也发生在我设法想出的最简
  • 单击时滚动到 div,最后循环

    我想做的是在屏幕右下角引入一个按钮 用户可以单击该按钮滚动到下一个 部分 div 一旦到达 html 中的最后一个 div 它应该循环回到第一个 divsection div 我提出的解决方案是 当页面最初加载时 它会收集类名称为 sect