• 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>
    

      

  • 相关阅读:
    MySql 数据类型
    MySql 数据库的增删改
    MySql 联合查询
    Mysql 库的管理 --->>>>DDL
    MySql 子查询
    MySql 分页查询
    sql99语法的连接查询
    MySql 连接查询
    MySql 分组函数
    jQ处理页面中尺寸过大的图片
  • 原文地址:https://www.cnblogs.com/cocoxia/p/backTop.html
Copyright © 2020-2023  润新知