HTML滚动条平滑移动,孟欣 - JS缓冲效果,平滑移动(滚动条平滑滚动)
JS缓冲效果,平滑移动(滚动条平滑滚动)
举个栗子:
点击导航栏的锚点,改变scroll的位置。(页面不是瞬间闪到,有个缓冲的效果)
点击button,页面瞬间闪到目标位置,这个功能很简单,不再啰嗦
效果很生硬,那我现在要加个缓冲,让它慢慢平滑过去。
jquery实现:用一个animate 后面参数给个时间就可简单实现。
JS实现:例:一个简单的点击导航栏不同的li ,平滑改变当前页面scroll不同位置
这是我用react项目写的,掺杂了一些react语法,但原理一样
const top= document.getElementById(name).offsetTop;
//获取到这个标签,且算出其距离页面顶部距离
let timer =null;
//设个 定时器
clearInterval(timer);
//每次执行时 先清一下之前的定时器
if(this.state.speedOver){
//设个开关(执行完上次任务才能再次执行) 不设置快速连续点击不同的li强行改变会出bug
timer=setInterval(()=>{
//开始定时器
let speed= (top-window.pageYOffset)/2;
//加速度(目标距顶部的距离 - 此时滚动条距顶部的距离)
speed= speed>0?Math.ceil(speed):Math.floor(speed);
//大于零向上取整,小于向下取整
if(window.pageYOffset==top){
//当目标距顶部的距离 = 此时滚动条距顶部的距离
clearInterval(timer);
//证明时间完成,清除定时器
this.setState({ speedOver:true });
//打开开关,可以进行下次事件了
}else{
document.documentElement.scrollTop=document.body.scrollTop=window.pageYOffset+speed;
this.setState({ speedOver:false });
//否则,window.pageYOffset和speed会不断的改变
//直至到目标处位置 此时的开关是一直保持关闭的
}
},30)
}
//想要改变scroll平滑跳转的快慢,调上方的 /2
HTML滚动条平滑移动,孟欣 - JS缓冲效果,平滑移动(滚动条平滑滚动)相关推荐
- html滚动条自动下拉,[JS] jquery实现div随滚动条下拉浮动功能
1.简介 div浮动,当滚动条下拉时,将div浮动到固定位置上. 2.实现 引用jquery.js略 1.html div加id="float".如 浮动内容 2.css 样式.d ...
- 《javaScript100例|04》自动播放——Js幻灯片缓冲效果
目录 效果图 示例 源码地址: 效果图 示例 <html> <head> <title>自动播放--幻灯片缓冲效果</title> <style& ...
- 分享92个JS相册效果JS代码,总有一款适合你
分享92个JS相册效果JS代码 链接:https://pan.baidu.com/s/10AUc6EN5TB4ZPydLAAEu5Q 提取码:pxj1 下面是文件的名字,我放了一些图片,文章里不是所 ...
- vue 滚动条_轻量级 React.js 虚拟美化滚动条组件RScroll
前几天有给大家分享一个Vue自定义滚动条组件VScroll.今天再分享一个最新开发的React PC端模拟滚动条组件RScroll. vue+pc桌面端模拟滚动条组件VScroll rscroll 一 ...
- js 隐藏滚动条_轻量级 React.js 虚拟美化滚动条组件RScroll
前几天有给大家分享一个Vue自定义滚动条组件VScroll.今天再分享一个最新开发的React PC端模拟滚动条组件RScroll. vue+pc桌面端模拟滚动条组件VScroll rscroll 一 ...
- css easeoutbounce,缓冲效果插件easing用法
本站的导航条二级菜单展开缓冲效果就是使用插件easing实现的,类似弹簧的缓冲效果... 在实际应用中偶尔会使用到这个插件以实现缓冲效果,现在这里记录下插件easing的用法.此插件依赖jquery库 ...
- JS 实现元素颜色跟随滚动条变化
JS 实现元素颜色跟随滚动条变化 灰色深浅变化 滚动部分 颜色部分 完整JS代码 彩色变化 颜色部分修改 修改后的彩色变化JS完整代码 最近在学习JS开发,突然想实现这样一个效果,滚动条往下拉时元素颜 ...
- js动画与html动画效果,九种原生js动画效果
在做页面中,多数情况下都会遇到页面上做动画效果,我们大部分做动画的时候都是使用框架来做(比如jquery),这里我介绍下如何让通过原生的js来实现像框架一样的动画效果! 1.匀速动画效果说明:匀速动画 ...
- JS打字效果的动态菜单代码分享
这篇文章主要介绍了JS打字效果的动态菜单,推荐给大家,有需要的小伙伴可以参考下. 这是一款基于javascript实现的打字效果的动态菜单特效代码,分享给大家学习学习. 小提示:浏览器中如果不能正常运 ...
最新文章
- Linux系统挂载NTFS文件系统
- 2019-03-4-算法-进化(罗马数字转整数)
- 上下div高度动态自适应--另类处理方案
- JS 判断手机操作系统代码
- 微软 rms服务器端,微软RMS服务器部署之准备篇
- php mysql 冒号_php – 使用pdo在搜索变量中使用冒号(:)进行查询
- ”*“在正则表达式和通配符的应用
- 我只注视你全cg存档_在暴戾的他怀里撒个娇 作者:春风榴火全娱乐圈都在等我们离婚作者:魔安...
- python项目依赖库的导出和安装
- ural 2023. Donald is a postman
- 工欲善其事必先利其器——dreamweaver
- 利用遗传算法求解旅行商问题
- Windows10下设置开机自启动自己的程序
- Python如何清屏命令行终端
- mac 配置host
- absolute和relative的区别
- 视频转mp4格式转换器如何把其他格式的视频转换成mp4格式
- 如何在高德地图windowInfo弹窗中使用VUE组件
- matlab 将图片转为视频
- 女博士年薪156万入职华为:给员工吃饱了,他们才会为你拼命