用原生实现js描点动画和改进思路以及高亮当前topbar的元素

描点动画


思路一

采用setInterval制作缓动

  1. 设置次数n,一共动多少次
  2. 规定时间s(毫秒),算出多少毫秒动一次 s/n=time
  3. 获取当前距离页面顶部高度currtenTop=window.scrollY
  4. 获取目标div的高度targetTop(上一节已说明)
  5. 每一次要动多少px:(targetTop-currttop)/n
  6. 然后设置动画,当i===25时,清除掉这个时钟,每次的距离=最初的currentTop+distance*i , time是每隔多少时间循环一次
  • 动画时间固定,导致如果距离很短,动的很慢,如果距离很长,则动的很快

思路二

采用tween.js库

  1. tween.js提供了一系列缓动函数,详细的动画效果见http://easings.net/zh-cn
  2. 首先我们引入js库 采用cdn方式引入<script src="https://cdn.bootcss.com/tween.js/r14/Tween.js"></script>
  3. 拷贝文本代码
  4. 根据具体情况修改代码,设置缓动类型,开始距离currentTop=window.scollY(滚动条滚动的距离),目标距离targetTop=element.offsetTop(目标dom距离页面顶端的距离),element是我们获取到的目标dom,时间我们设置一个函数与运动距离成正比,time=(s/100)*300,随后设置一个最大时间,coords.y我们console出来,发现这是一个时时更新的坐标,所以我们在其中填入 window.scrollTo(0, coords.y)

元素高亮


  1. 标记我们的目标元素
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 看了很多视频、文章,最后却通通忘记了,别人的知识依旧是别人的,自己却什么都没获得。此系列文章旨在加深自己的印象,因...
    DCbryant阅读 4,044评论 0 2
  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 10,181评论 2 32
  • tweenjs 是使用 JavaScript 中的一个简单的补间动画库,支持数字、对象的属性和 CSS 样式属性的...
    bowen_wu阅读 23,062评论 0 11
  • 【Android 动画】 动画分类补间动画(Tween动画)帧动画(Frame 动画)属性动画(Property ...
    Rtia阅读 11,369评论 1 38
  • 深入响应式 追踪变化: 把普通js对象传给Vue实例的data选项,Vue将使用Object.defineProp...
    冥冥2017阅读 10,292评论 6 16