首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

原生 JS 实现惯性滚动,给鼠标滚轮增加阻尼感,纵享丝滑

然而鼠标滚轮的传感器通常采用光电或机械的方式运作,由一个旋转轴和一个传感器组成,旋转轴通常无法做出细微的距离控制,使得距离检测更像是段落式的,这些信号在传输到计算机后,并不能实现丝滑的滚动。...可以通过以下例子感受两种滚动的差异:图片https://code.juejin.cn/pen/7272919488994279484本文将教会你如何让鼠标滚轮也能够丝滑地操作网页,带来更舒适的页面惯性滚动体验...通过滚轮事件中的 deltaY、deltaX 值获取到最终滚动距离,浏览器帧绘制函数 requestAnimationFrame 来逐帧设置页面的 scrollTop 达到模拟滚动的效果,并利用线性插值或缓动函数等数学方法来计算变化过程中的值...滚轮事件滚轮事件(wheel) 取代了已被弃用的非标准 mousewheel 事件,代码如下。...视频滚动在该例子中我使用了 scrolly-video 这个库,它能将视频每一帧解析绘制到 Canvas 上,然后基于滚动控制进度,实现效果如下:普通滚动平滑滚动图片图片Gif 图帧率有限,可以前往在线体验效果

89541

随心所欲的滚动条,远离产品汪(二)

具体实现步骤 滚动事件的添加原理其实与实现自定义滚动条的原理基本一致,只是多了滚轮滚动方向的判断及滚动值的获取。...首先,我们需要明白我们的滚轮是作用在谁的身上,根据实际需求来进行事件绑定,当我们鼠标移入可视区时,会触发滚轮事件,在移出可视区时则清除滚轮事件,接下来进行具体代码操作。...1.通过设置变量Judge来判断滚轮滚动方向,当Judge为ture时,滚轮向上滚动,当Judge为false时,滚轮向下滚动。...//为防止滚轮滚动速度过慢,所以乘10增加滚轮滚动速度 sc.style.top =bx.scrollTop*bxHeight/cnHeight + "px";//与滚动条绑定..., // 判断鼠标滚轮的方向 scrY = 0; // 滚轮滚动距离 bxHeight = bx.clientHeight, // 可视区A高度

1.9K80
领券