首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS判断滚动条是否停止滚动

背景:昨天一个同事有种需求,有一个展示数据区域的div,带滚动条,当滚动滚动时,需要向后台发请求,计算数据,再拿到前台展示。        ...分析:由于数据量级别较大,所以当滚动滚动时,如果时时向后台发请求,对服务器和浏览器都造成巨大的压力。想到的解决方案是,当滚动条停止时,再去发请求计算数据。...那么问题来了,如何判断滚动条是否停止了呢?        解决:搜索了一下,js本身是无法判断滚动条是在滚动状态还是停止状态,只有通过其它方式了。...后来想到的思路是当滚动滚动的时候,发起一个定期执行的方法,并记录一次当前滚动条到顶部的距离,这个方法中判断此时滚动条到顶部的距离是否和上次记录的相等,如果相等,那么说明停止滚动了,不相等,还在滚动。...setInterval("test()", 1000); topValue = document.documentElement.scrollTop; } function test() { // 判断此刻到顶部的距离是否和

17.3K00
您找到你想要的搜索结果了吗?
是的
没有找到

小程序 - swiper除了左右切换还有上下滚动超出屏幕的内容

但是,好景又不长,测试阶段上线倒数第二天,提出了个bug,有的用户会传超出屏幕长度的图片,需求是不影响正常左右切换的情况下,要让图片能够上下滑动显示完整。 我的天。。。...swiper和swiper-item会被默认加上100%的高度,所以想要实现overflow-y:scroll是不可能的额, 想想小程序的纵向滚动就只有scroll-view可以实现,我把scroll-view...包住swiper不行, 毕竟每一个swiper-item都是独立的,有的长有的短,包一个是达不到要求的,就算能滚动, 但是别忘了前边说的:swiper和swiper-item会被默认加上100%的高度,...今天早上来了突然开窍了,把每一个swiper-item里边包一个scroll-view,再加上feed流中实现短图片垂直居中,长图片从上向下滚动的样式,最后效果就出来了: ? ? ? ?

2.7K70

通过 JS 判断页面是否有滚动条的简单方法

前言 最近在写插件的过程中,需要使用 JS 判断是否有滚动条,搜了一下,大致方法都差不多,但都有些啰嗦,代码不够简洁。最终通过参考不同方法,写了一个比较简单的方法。...在判断滚动条的同时也需要计算滚动条的宽度,通过本篇文章一并与大家分享。 为什么要判断滚动条 ?...判断滚动条的需求在弹窗插件中用的较多,因为弹窗大多会添加 overflow: hidden 的属性,如果页面比较长的话,添加这个属性之后页面会有晃动。...为了增强用户体验,通过判断是否有滚动条而添加 margin-left 属性以抵消 overflow: hidden 之后的滚动条位置。...判断是否有滚动条的方法 其实只需要一行 JS 就可以,测试兼容 IE7 function hasScrollbar() { return document.body.scrollHeight >

8.1K90

滚动穿透的6种解决方案【已自测】

在移动端中,如果我们使用了一个固定定位的遮罩层,且其下方的dom结构的宽度|高度超出屏幕的宽度|高度,那么即使遮罩层弹出后铺满了整个屏幕,其下方的dom结构依然可以滚动,这就是大家所说的“滚动穿透”。...但是同样的问题是,需要判断滚动到顶部和滚动到底部的时候禁止滚动。否则,就和第二条一样,触碰到上下两端,弹窗可滚动区域的滚动条到了顶部或者底部,依旧穿透到body,使得body跟随弹窗滚动。...同理,如果手势是向下滑,并且当前滚动高度为0说明当前展示的已经在可滚动内容的顶部了,此时再次阻止默认事件即可。 两个判断条件可以写到一个if中,用 || (或)表示即可。...五、body滚动 + 弹层内部滚动[js-代码模拟上下滑动手势效果] 我想,既然我们监控弹层、监控touchY那么辛苦了已经,还差再辛苦一点,自己写一个模拟手势滚动效果嘛!...思路就是把手势移动的长度添加到弹层上下移动的距离上。 5、可能需要多考虑的一点是,当用户一直上翻到底或者一直下拉到顶时,做一下极值的判断和限制。

13.4K31

挥别web移动端开发差异和经典坑

touch: 使用具有回弹效果的滚动, 当手指从触摸屏上移开,内容会继续保持一段时间的滚动效果。继续滚动的速度和持续的时间和滚动手势的强烈程度成正比。同时也会创建一个新的堆栈上下文。...解决: fastclick可以解决在手机上点击事件的300ms延迟 zepto的touch模块,tap事件也是为了解决在click的延迟问题 iOS上拉边界下拉出现空白,安卓无 描述:手指按住屏幕下拉,...手指按住屏幕上拉,底部多出一块白色区域。安卓无此特性。 在 iOS 中,手指按住屏幕上下拖动,会触发 touchmove 事件。...问题 描述: iOS系统中JS转换字符串变日期对象的时候,字符串格式必须是/相隔,通常情况是-相隔,在微信小程序IOS环境中同样出现出现此问题 iOS系统对js中的new Date()方法有格式要求 let...,在安卓手机浏览器中没有问题,但是在 ios 手机浏览器中用输入法输入之后,并未立刻相应 keyup、keydown 事件 非直接的文字输入(中文输入法)下,进行判断限制,仅在选词后触发input事件

2.8K20

butterfly文章页面上下篇按钮UI调整

编写了电脑端的悬停卡片样式,且左右分离 2022-03-15: 基本功能逻辑实现 实现了 UI 分离 编写了手机端和电脑端的按钮样式 编写了手机端的悬停卡片样式 点击查看参考教程 参考方向 教程原贴 参考了事件监听动作的语法...addEventListener 监听dom元素是否在屏幕内的示例 JS判断指定dom元素是否在屏幕内的方法实例 思路分析 我试图通过将文章底部的按钮改至左右两侧,类似翻页键,同时添加悬停动作,通过...所以尝试通过设置滚动事件监听,在页面滚动至原本上下页翻页的位置,也就是正文刚好读完的时候,才显示按钮。...毕竟butterfly目前的上下篇很贴心的提供了封面,标题这两个元素。...STYLUS 新建 [Blogroot]\themes\butterfly\source\js\fixed-pagination.js, 这个 js 的作用就是提供滚动监测了,这里因为翻页按钮是常态隐藏的

1.6K20

移动端app开发问题及理解

onscroll 元素滚动条被滚动时 移动端事件有 click 单击事件 类似于pc端click,移动端中,连续click触发有200ms-300ms的延迟 touch 触摸类事件 touchstart...touch行为可触发 tap触碰类事件 一般用于代替click事件 tap 手指碰一下屏幕触发 longTap 手指长按屏幕触发 singleTap 手指碰一下屏幕触发 doubleTap 手指双击屏幕触发...手指在屏幕上下滑触发 vant组件使用过程中遇到的问题 弹框dialog组件确认回调函数 最开始我绑定的是confirm事件 但是实际调用的时候接口一直调用进入死循环了,控制台报Maximum call...可以改用beforeClose事件 回调函数有两个参数,第一个判断点击的是确认按钮还是取消按钮。第二个感觉是可以关闭模态框 移动端消息推送 消息推送跟设备走还是跟人走?...根据用户权限判断该用户是否可以收到消息的推送 app安装在设备上,跟设备走是根据设备的mac地址。根据mac地址判断该设备是否可以收到消息,给相应的设备推送消息。

3.7K10

「JavaScript 」动画基础 - 03

触屏事件可响应用户手指(或触控笔)对屏幕或者触控板操作。...注意: 手指移动也会触发滚动屏幕所以这里要阻止默认的屏幕滚动 e.preventDefault(); 1.2. 移动端常见特效 1.2.1 案例: 移动轮播图 移动端轮播图功能和基本PC端一致。...注意,我们判断条件是要等到图片滚动完毕再去判断,就是过渡完成后判断 此时需要添加检测过渡完成事件 transitionend 判断条件:如果索引号等于 3 说明走到最后一张图片,此时 索引号要复原为...e.preventDefault(); // 阻止滚动屏幕的行为 }); // 手指离开 根据移动距离去判断是回弹还是播放上一张下一张 ul.addEventListener('touchend...案例:返回顶部 当页面滚动某个地方,就显示,否则隐藏 点击可以返回顶部 1.3.2.案例分析 滚动某个地方显示 事件:scroll页面滚动事件 如果被卷去的头部(window.pageYOffset )

1.1K20

前端成神之路-WebAPIs07

触屏事件 1.1.1 触屏事件概述 移动端浏览器兼容性较好,我们不需要考虑以前 JS 的兼容性问题,可以放心的使用原生 JS 书写效果,但是移动端也有自己独特的地方。...触屏事件可响应用户手指(或触控笔)对屏幕或者触控板操作。 常见的触屏事件如下: ?...touchstart: 获取手指初始坐标,同时获得盒子原来的位置 (2) 移动手指 touchmove: 计算手指的滑动距离,并且移动盒子 (3) 离开手指 touchend: 注意: 手指移动也会触发滚动屏幕所以这里要阻止默认的屏幕滚动...自动播放功能-无缝滚动 注意,我们判断条件是要等到图片滚动完毕再去判断,就是过渡完成后判断 此时需要添加检测过渡完成事件 transitionend 判断条件:如果索引号等于 3 说明走到最后一张图片...案例:返回顶部 当页面滚动某个地方,就显示,否则隐藏 点击可以返回顶部 1.3.2.案例分析 滚动某个地方显示 事件:scroll页面滚动事件 如果被卷去的头部(window.pageYOffset )

3.5K10

后台管理tab栏滑动解决方案

tab)" class="el-icon-close"> 这里只是循环放置了一排div,实现滑动需要对外部tab容器tabmain进行onwheel事件的绑定...加入判断滚动方向,通过event.deltaY判断,向上滚动为负值(对应tab向左滚动),向下滚动为正值(对应tab向右滚动),调用tabmian对象的scrollLeft可以实现滚动,完整代码如下 $...,$(element).width()为div的宽度,计算可得知滚动部分长度 //table.scrollLeft()为div已经滚动了多少,相比较就可以判断div是否滚动完毕 if...(table.scrollLeft() 0) { //禁止事件默认行为(此处禁止鼠标滚轮行为关联到"屏幕滚动上下移动"行为)...(此处禁止鼠标滚轮行为关联到"屏幕滚动上下移动"行为) event.preventDefault(); var left = (table.scrollLeft() -

28430

📚一站式解决:H5开发全攻略,看这篇让你省时又省力

通过使用CSS媒体查询中的orientation选择器,您可以监听屏幕的旋转事件,并根据屏幕方向调整样式,以便页面始终保持最佳布局。...当内容滚动到顶部或底部时,滚动事件不会继续传递给父容器。....container { overscroll-behavior: contain; } ⭐️⭐️禁止屏幕抖动 通过提前声明滚动容器的padding-right为滚动条宽度,可以防止滚动条的出现导致屏幕抖动...⭐️⭐️⭐️⭐️⭐️click 点击延迟与穿透问题 现象 在 iOS 设备上,单击事件可能会有 300ms 的延迟,因为 Safari 浏览器需要在单击 300ms 后判断用户是否进行了第二次点击以实现双击缩放操作...兼容原理,1.判断版本类型 2.更改滚动的可视区域 解决方案 通过监听页面高度变化,强制恢复成弹出前的高度。

33820
领券