zoukankan      html  css  js  c++  java
  • jquery&vue backTop缓慢返回顶部的方法应用

    前言:刚应用Vue框架不久

    jquery:

      jquery的方法相对来说比较简单一点,直接使用animate:

    $('点击返回顶部元素').click(function(e){
         e.preventDefault();
         if ($('html').scrollTop()) {
    $('html').animate({ scrollTop: 0 }, 1000);
    return false;
    }
         $('body').animate({scrollTop:0},1000);
         return false;
    })

    vue:

      因为返回顶部是在多处使用的,直接封装成自定义指令来调用了。

      自己犯得小错误:由于之前不注意给body、html、#app都给了overflow-y:scroll;造成页面滚动给到其他元素上,导致console.log(document.documentElement.scrollTop,document.body.scrollTop)打印出来的数值都是0 0,页面也滚动不了。之后只给了body设置了overflow-y:scroll,就实现返回顶部的功能了。

      

    Vue.directive('back-top',{
    	inserted(el,binding){
    		let e = binding.arg || 'click'
    		el.addEventListener(e,function(){
    			//console.log(document.body.scrollTop)
    			var cancelScroll  = false;
    			var timer = null;
    			if( cancelScroll === false ){
    				timer = setInterval(function(){
    					var osTop = document.documentElement.scrollTop || document.body.scrollTop;
    					//console.log(document.documentElement.scrollTop,document.body.scrollTop)
    					var ispeed = Math.floor(osTop-20);
    					document.documentElement.scrollTop = document.body.scrollTop = ispeed;
    					if( osTop === 0 ){
    						clearInterval(timer);
    					}
    				},10)
    			}else{
    				clearInterval(timer);
    				cancelScroll = true
    			}
    			
    		})
    	}
    });
    
    应用:
    <div class="returnTop" v-back-top>
    	<i class="iconfont icon-xiangshangjiantou"></i>
    </div>
    

      

  • 相关阅读:
    什么是程序员的优秀品质?【转】
    我也来评“超级女声”五强选手
    ddd
    在window 2003 server下遇到的asp错误
    几个asp+操作日期的函数
    vb.net常用函数
    WordPress使用小记
    asp.net身份验证方式
    水晶报表如何导出为Excel文档
    ListView选中selectedItem上下移动
  • 原文地址:https://www.cnblogs.com/cocoxia/p/backTop.html
Copyright © 2011-2022 走看看