最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

vue项目tween方法实现返回顶部的示例代码

来源:动视网 责编:小采 时间:2020-11-27 22:18:17
文档

vue项目tween方法实现返回顶部的示例代码

vue项目tween方法实现返回顶部的示例代码:一、场景 tween.js是一款可生成平滑动画效果的js动画库 当你要实现一个返回顶部的功能时候你会怎么做,大部分人会使用document.body.scrollTop =0;这么写就实现了功能, 不过要更加的细腻一点我们不妨用tween的缓动来实现,看看效果如何吧。 之前我们
推荐度:
导读vue项目tween方法实现返回顶部的示例代码:一、场景 tween.js是一款可生成平滑动画效果的js动画库 当你要实现一个返回顶部的功能时候你会怎么做,大部分人会使用document.body.scrollTop =0;这么写就实现了功能, 不过要更加的细腻一点我们不妨用tween的缓动来实现,看看效果如何吧。 之前我们


一、场景

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项目tween方法实现返回顶部的示例代码

vue项目tween方法实现返回顶部的示例代码:一、场景 tween.js是一款可生成平滑动画效果的js动画库 当你要实现一个返回顶部的功能时候你会怎么做,大部分人会使用document.body.scrollTop =0;这么写就实现了功能, 不过要更加的细腻一点我们不妨用tween的缓动来实现,看看效果如何吧。 之前我们
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top