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缓冲效果,平滑移动(滚动条平滑滚动)相关推荐

  1. html滚动条自动下拉,[JS] jquery实现div随滚动条下拉浮动功能

    1.简介 div浮动,当滚动条下拉时,将div浮动到固定位置上. 2.实现 引用jquery.js略 1.html div加id="float".如 浮动内容 2.css 样式.d ...

  2. 《javaScript100例|04》自动播放——Js幻灯片缓冲效果

    目录 效果图 示例 源码地址: 效果图 示例 <html> <head> <title>自动播放--幻灯片缓冲效果</title> <style& ...

  3. 分享92个JS相册效果JS代码,总有一款适合你

    分享92个JS相册效果JS代码 链接:https://pan.baidu.com/s/10AUc6EN5TB4ZPydLAAEu5Q  提取码:pxj1 下面是文件的名字,我放了一些图片,文章里不是所 ...

  4. vue 滚动条_轻量级 React.js 虚拟美化滚动条组件RScroll

    前几天有给大家分享一个Vue自定义滚动条组件VScroll.今天再分享一个最新开发的React PC端模拟滚动条组件RScroll. vue+pc桌面端模拟滚动条组件VScroll rscroll 一 ...

  5. js 隐藏滚动条_轻量级 React.js 虚拟美化滚动条组件RScroll

    前几天有给大家分享一个Vue自定义滚动条组件VScroll.今天再分享一个最新开发的React PC端模拟滚动条组件RScroll. vue+pc桌面端模拟滚动条组件VScroll rscroll 一 ...

  6. css easeoutbounce,缓冲效果插件easing用法

    本站的导航条二级菜单展开缓冲效果就是使用插件easing实现的,类似弹簧的缓冲效果... 在实际应用中偶尔会使用到这个插件以实现缓冲效果,现在这里记录下插件easing的用法.此插件依赖jquery库 ...

  7. JS 实现元素颜色跟随滚动条变化

    JS 实现元素颜色跟随滚动条变化 灰色深浅变化 滚动部分 颜色部分 完整JS代码 彩色变化 颜色部分修改 修改后的彩色变化JS完整代码 最近在学习JS开发,突然想实现这样一个效果,滚动条往下拉时元素颜 ...

  8. js动画与html动画效果,九种原生js动画效果

    在做页面中,多数情况下都会遇到页面上做动画效果,我们大部分做动画的时候都是使用框架来做(比如jquery),这里我介绍下如何让通过原生的js来实现像框架一样的动画效果! 1.匀速动画效果说明:匀速动画 ...

  9. JS打字效果的动态菜单代码分享

    这篇文章主要介绍了JS打字效果的动态菜单,推荐给大家,有需要的小伙伴可以参考下. 这是一款基于javascript实现的打字效果的动态菜单特效代码,分享给大家学习学习. 小提示:浏览器中如果不能正常运 ...

最新文章

  1. Linux系统挂载NTFS文件系统
  2. 2019-03-4-算法-进化(罗马数字转整数)
  3. 上下div高度动态自适应--另类处理方案
  4. JS 判断手机操作系统代码
  5. 微软 rms服务器端,微软RMS服务器部署之准备篇
  6. php mysql 冒号_php – 使用pdo在搜索变量中使用冒号(:)进行查询
  7. ”*“在正则表达式和通配符的应用
  8. 我只注视你全cg存档_在暴戾的他怀里撒个娇 作者:春风榴火全娱乐圈都在等我们离婚作者:魔安...
  9. python项目依赖库的导出和安装
  10. ural 2023. Donald is a postman
  11. 工欲善其事必先利其器——dreamweaver
  12. 利用遗传算法求解旅行商问题
  13. Windows10下设置开机自启动自己的程序
  14. Python如何清屏命令行终端
  15. mac 配置host
  16. absolute和relative的区别
  17. 视频转mp4格式转换器如何把其他格式的视频转换成mp4格式
  18. 如何在高德地图windowInfo弹窗中使用VUE组件
  19. matlab 将图片转为视频
  20. 女博士年薪156万入职华为:给员工吃饱了,他们才会为你拼命

热门文章

  1. Windows Server 2012 蓝屏 Wpprecorder.sys 故障
  2. aria2c 使用代理下载(Use With Proxy)
  3. 【英语】罗塞塔第一遍学习总结
  4. linux 内核CMA笔记
  5. WINSYS DAY02(02):如何管理组账号?
  6. 如何使用虚拟机改ip地址?
  7. 惠普HP LaserJet Pro M305dn 打印机驱动
  8. 常用的设计模式(泡妞经典版)
  9. SASS的了解与使用
  10. HaaS100开发板WiFi与蓝牙无法共用的解决方法