vue项目tween方法实现返回顶部的示例代码
2018-03-02 08:28
1461 查看
一、场景
tween.js是一款可生成平滑动画效果的js动画库
当你要实现一个返回顶部的功能时候你会怎么做,大部分人会使用document.body.scrollTop =0;这么写就实现了功能,
不过要更加的细腻一点我们不妨用tween的缓动来实现,看看效果如何吧。
之前我们写过tween的相关文章,这里不做介绍了。
二、代码
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="https://cdn.jsdelivr.net/npm/vue"></script> <style type="text/css"> #app{width: 100%; height: 3000px;background: #CCCCCC;} .backTop{ width: 1.5rem; height: 1.5rem; border: 1px solid #ff0000; position: fixed; right: 1rem; bottom: 2rem; border-radius: 50%; /*background: url(/static/imgs/backtop20180226.png) no-repeat 40%;*/ background-size: 70% 100%; } </style> </head> <body> <div id="app"> <div @click="backTop()" class="backTop">Top</div> </div> <script type="text/javascript"> var app = new Vue({ el:"#app", data:{ }, methods:{ backTop(){ // * t: current time(当前时间); // * b: beginning value(初始值); // * c: change in value(变化量); // * d: duration(持续时间)。 var Tween = { Linear: function(t, b, c, d) { //匀速运动,想要实现其他的效果可以使用tween的其他方法 return c * t / d + b; } } Math.tween = Tween; var t = 1; const b = document.documentElement.scrollTop; const c = 50; const d = 5; const setInt = setInterval(()=>{ t--; console.log(t) if(document.documentElement.scrollTop == 0){clearInterval(setInt)} console.log(t); const backTop = Tween.Linear(t,b,c,d); console.log(backTop); document.documentElement.scrollTop = backTop; },20) } } }) </script> </body> </html>
三、requestAnimationFrame改写setInterval方法:
methods:{ backTop(){ var Tween = { Linear: function(t, b, c, d) { //匀速 return c * t / d + b; } } Math.tween = Tween; var t = 1; const b = document.body.scrollTop; const c = 1; const d = 1; var timer; timer= requestAnimationFrame(function fn(){ if(document.body.scrollTop > 0){ t--; console.log(t) console.log(t); const backTop = Tween.Linear(t,b,c,d); console.log(backTop); document.body.scrollTop = backTop; timer = requestAnimationFrame(fn); }else{ cancelAnimationFrame(timer) } }) } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- Vue多种方法实现表头和首列固定的示例代码
- 10_9_2从类MyClass中派生一个类MyDervedClass,重写GetString(),使用该方法的基类实现代码从基类中返回一个字符串,但在返回的字符串中添加文本"(output fro)"
- C#.NET示例读写xml所有节点的代码实现方法和读取xml节点的数据总结
- java中,父类是抽象类不能通过工厂输出时,如何通过其他类实现输出的示例代码(工厂方法种类(1))
- 项目下拉返回判断条件代码示例
- linux device drive 第六章代码示例-scullpipe的实验(poll和fasync方法的实现)之一
- 仿新浪微博返回顶部的jquery实现代码
- 用jQuery实现的智能隐藏、滑动效果的返回顶部代码
- 网页中返回顶部代码(多种方法)另附注释说明
- jquery返回顶部实现方法
- 用jQuery实现的智能隐藏、滑动效果的返回顶部代码
- 网页内容实现太长实现返回顶部的代码
- Objective-C运行时编程 - 实现自动化description方法的思路及代码示例
- DIV始终固定在网页右下角位置的CSS实现方法,返回顶部功能
- Js和Jquery中ajax返回JSON格式的两种方法!(各有示例代码)
- Javascript返回顶部代码实现
- 仿新浪微博返回顶部的jquery实现代码
- 网页中返回顶部代码(多种方法)另附注释说明
- jQuery一句代码实现返回顶部功能
- js 方法实现返回多个数据的代码