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

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

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

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

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

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

8.1K90

Vue 实现图片监听鼠标滑轮滚动实现图片缩小放大功能

前言其实想要实现功能很简单,就是在一张图片上监听鼠标滑轮滚动的事件,然后根据上还是下实现图片的缩放。...实现思路在js中,onmousewheel是鼠标滑轮滚动事件,可以通过这个事件触发来改变图片的大小,实现图片放大缩小功能。但是我们这里是vue所以使用的是:mousewheel。...onmousewheelonmousewheel事件:会在鼠标滚轮滚动的时候被触发,对鼠标滚轮是否滚动进行判断,但是火狐浏览器不支持这个属性。...event.wheelDellta:可以用来获取鼠标的滚动方向,对于得到的值,只看正负,往上是正值,往下是负值。...在页面有滚动条的时候,滚动条会随着鼠标滚轮滚动而滚动,这是浏览器的默认行为,可用return false来取消浏览器的默认行为。有火狐鼠标滚轮兼容问题。

3.4K20

fullPage.js全屏滚动插件

"js/jquery.fullPage.min.js"> 3.初始化 //html 第一屏</...controlArrowColor (string) 左右滑块的箭头的背景颜色 loopBottom (true/false)滚动到最底部后是否滚回顶部 loopTop (true/false)滚动到最顶部后是否底部...loopHorizontal (true/false)左右滑块是否循环滑动 autoScrolling (true/false) 是否使用插件的滚动方式,如果选择 false,则会出现浏览器自带的滚动条...scrollOverflow (true/false)内容超过满屏后是否显示滚动条 css3 (true/false) 是否使用 CSS3 transforms 滚动 paddingTop string...接收 index、nextIndex 和 direction 3个参数:index 是离开的“页面”的序号,从1开始计算;nextIndex 是滚动到的“页面”的序号,从1开始计算;direction 判断往上滚动还是往下滚动

14.6K20

打造聊天框丝滑滚动体验:AI 聊天框的翻转之道

列表最上边新增的行会把后边的行往下挤,而聊天框最下边新增消息需要把上边的消息往上挤。那假如我们将聊天框旋转 180° 呢...?...滚动条调整与滚动行为反转最核心的问题已经解决了,但总觉得哪里看起来怪怪的。滚动条怎么跑到左边,并且滚动行为和鼠标滚轮的方向反了,滚轮向上,聊天框却向下。...这样我们就可以把滚动条放回右边了。然后在通过监听滚动事件,改变滚动方向就可以恢复鼠标滚轮的滚动行为。...不需要对聊天框和消息体再进行旋转操作,也不需要反转滚动条的行为。以上两种方法都存在一个相同的问题,当一开始聊天消息还很少时,聊天消息也会紧贴着底部,顶部会留出一片空白。...(为了演示,把占位元素设置为了黑色)更新部分代码见: https://github.com/lrwlf/message-scroll-demo 将 App.js 的 chat 组件,替换为 src/components

84621

Js处理滚动条和日期框

有2种方式 1.通过Js处理滚动条 如果将元素拖动到可见区域之后,再去操作它,也就是处理这个滚动条。...例如底部的页面跳转:有的系统,虽然进来是这个地方,想操作页面底部的元素,可以操作,也不需要拖动滚动条,它会自动将它拖动到可见区域,然后去操作它。...例如元素在页面正中间,想将它滚动到可见区域,必须有向上和向下这2种做法。 如果你希望他向上。 一种,.scrolllntoView()默认跟页面顶部对齐: ?...如果你的被测系统某一个页面当中,因为太长了出现了滚动条怎么做呢? 第一次,先不滚动,元素在页面最底部,去执行这样的代码,如果它没有报错,那就不用滚动了,直接用就好。...滑轮往上拉,是和底部对齐。 滑轮往下拉,是和顶部对齐。 11)这个是和底部对齐的: ? 你们看,滑动条在最上面了,已经滑不动了,所以证明这个效果已经和底部对齐了。

10.8K10

jquery 置顶菜单

此时有一个问题,就是滚动条往上拖的时候,无法恢复看到banner,一直被menu覆盖着。...对于这个问题,只需要设置当$(document).scrollTop() <= 100 或者 if 判断中的 else分支,恢复position为定位的默认值即可。 那么问题来了!!...编写menu当滚动条往上拖动的时候,恢复原来的定位,可以展示出banner ? 当设置postion:static的时候,定位的方式就会恢复文档流中的布局。其中top和left就会失效。...这种肯定不合理,那么怎么去解决呢? 设置一个menu的背景div,当menu固定定位的时候,设置这个背景div撑住文档流的位置,这样就可以规避这个问题了。 增加一个背景div ?...> <script type="text/javascript" src="jquery/jquery-3.3.1.min.<em>js</em>

3.9K20

移动跨平台框架ReactNative滚动视图ScrollView【17】

当屏幕的内容超过一屏时,我们很熟练的往上拉一点就可以看到剩下的内容了,这时候右边还会滚动条告诉我们这是可以往上拉的。 这看起来很简单的内容,并不是每个 React Native 组件天生都自带的。...App.js import React, { Component } from 'react'; import { Text, View, StyleSheet} from 'react-native'...center', padding: 30, marginBottom: 8, backgroundColor: '#ffffff' } }) 运行效果图如下,不管我们怎么卖力的拉啊拉...ScrollView 滚动视图组件 `` 滚动视图组件,顾名思义,就是当内容超过指定的高度时会可以通过滑动来显示,右边还会显示滚动条。 `` 的使用很简单,只要包括在要滚动的组件外面就可以了。...例如上面那个范例,我们只需要做一点点的修改 App.js import React, { Component } from 'react'; import { Text, View, ScrollView

1.4K20

JS事件篇

支持IE8及以下的浏览器 兼容上面两者的写法 事件的传播 拖拽案例---鼠标按下,移动,松开事件 鼠标滚轮事件----onmousewheel----火狐不支持,由DOMMouseScroll替代 判断滚轮上还是下...----火狐不支持,由detail替代 取消滚动条随滚轮移动的默认行为 键盘事件 浏览器对象模型---navigator 通过 属性名 in 对象 可以判断对应的属性在当前对象中是否存在 浏览器对象模型...修改元素样式的一些思考 JSON JSON字符串转化为JS对象 JS对象转换为JSON字符串 eval函数 ---- window.onload:事件 浏览器加载一个页面时,是按照自上而下的顺序加载的...div绑定一个鼠标滚轮事件 addEventListener("DOMMouseScroll",function(){ alert("鼠标滚轮"); },false) ---- 判断滚轮上还是下...("d1"); //为div绑定一个鼠标滚轮事件 addEventListener("DOMMouseScroll",function(event){ //判断滚轮向上

12.6K10

移动端浏览器和微信浏览器上禁止body的滚动条

再进一步分析,如果要用class去实现没有滚动条,如下代码设置: .index_body { overflow-y: hidden;/*为了兼容普通PC的浏览器*/ height: 100%...; position: fixed; } 这个就是完全的禁止上下滑动,没有滚动条,且在iOS的safari浏览器上完全不能上下,但是确发现微信浏览器上可以上下缩动(下面再解决)。...我最后发现,上面这种解决是普遍的浏览器做法,如果要更彻底一点,就直接使用js代码去控制touchmove的事件,直接精致,这个在微信和手机浏览器上完成可行。...上面的思路实现:1、通过微信useragent来判断,如果是微信浏览器自动加入class去设置。2、非微信useragent就默认不加class。...禁止上下缩滑: /*去掉手机滑动默认行为*/ $('body').on('touchmove', function (event) { event.preventDefault(); }); 判断微信浏览器

2.7K10

scrollIntoView()方法导致整个页面产生偏移

scrollIntoView 的简单使用:scrollIntoView() 让元素进入可视区域 · Issue #167 但是现在有个问题就是,当点击题目编号的时候,除了题目会滚动到可视区域,整个页面也会稍稍往上滚动...如下图所示,当我点击第9题的时候,左侧第9题移动到视口中,但是整个页面包括导航栏都往上移动了,且无法在移回来,整个页面是没有滚动条的。 ?...我之前怀疑是不是该函数给整个页面加了transform 属性导致整个页面往上偏移,通过查看css,发现没有。 没有想到办法。...最高赞给出的解决方法是:放弃使用scrollIntoView 改用scrollTop 来操作滚动条。...animate 函数使用方法:https://jquery.cuishifeng.cn/animate.html 如果不使用 jQuery 的话,由于scrollTop 是js属性,不是css属性,

3.9K40

区分clientHeight、scrollHeight、offsetHeight

具体如下: clientHeight: 只读属性,所表示的元素高度包括:元素的内容高度(如果有下滚动条,需减去下滚动条的高度,下条默认高度为17px)+上下padding;不包括上下border、上下...margin、下滚动条高度(如果元素有下滚动条,则clientHeight表示的高度不包含下滚动条)。...offsetHeight: 只读属性,所表示的元素高度包括:元素的内容高度(如果有下滚动条,需减去下滚动条的高度,下条默认高度为17px)+上下padding+上下border+下滚动条高度(如果元素有下滚动条...,需减去下滚动条的高度,下条默认高度为17px)+该元素的上下padding,此时,与clientHeight在数值上相等。...、offsetheight、scrollheight详解 [2] 搞清clientHeight、offsetHeight、scrollHeight、offsetTop、scrollTop [3] js

92230
领券