vue实现滑动超出指定距离回顶部功能


Posted in Javascript onJuly 31, 2019

本文实例为大家分享了vue实现滑动超出指定距离回顶部功能,供大家参考,具体内容如下

效果图展示:

vue实现滑动超出指定距离回顶部功能

1、当页面滑动时执行scrollToTop ()函数,判断滑动的距离是否超出指定距离,注意下面获取getElementsByClassName时,是你被滑动标签的class。

mounted() {
  window.addEventListener('scroll', this.scrollToTop, true)
 }
scrollToTop () {
  let This = this
  let dom = document.getElementsByClassName('content')[0];//获取滑动模块的信息(注意class别写错)
  This.scrollTop = dom.scrollTop;
  if (This.scrollTop > 200) {
    This.btnFlag = true
  } else {
    This.btnFlag = false
  }
}

2、当超出指定距离会出来向上的小图标,点击执行backTop ()函数回顶部。图标我是用的阿里矢量图标引入到项目中,样式自己调一下。

// 点击图标回到顶部方法,加计时器是为了缓慢回到顶部
backTop () {
  let This = this
  let timer = setInterval(() => {
    let ispeed = Math.floor(-This.scrollTop / 5)
    document.getElementsByClassName('content')[0].scrollTop = This.scrollTop + ispeed
    if (This.scrollTop === 0) {
      clearInterval(timer)
    }
  }, 16)
},

完整代码请看下面:

<template>
 <div class="scrollTop-wrap">
  <div v-if="btnFlag" class="go-top">
    <li class="iconfont iconhuidaodingbu" @click="backTop()"></li>
  </div>
 </div>
</template>
<script>
 import { httpGetMethod } from '../common/httpService'
 export default {
  name: 'scrollTop',
  data: function () {
   return {
    btnFlag:false,
    scrollTop:0//当前滑动距离
   }
  },
  mounted() {
    window.addEventListener('scroll', this.scrollToTop, true)
  },
  destroyed () {
    window.removeEventListener('scroll', this.scrollToTop, true)
  },
  methods: {
    // 点击图标回到顶部方法,加计时器是为了缓慢回到顶部
    backTop () {
      let This = this
      let timer = setInterval(() => {
        let ispeed = Math.floor(-This.scrollTop / 5)
        document.getElementsByClassName('content')[0].scrollTop = This.scrollTop + ispeed
        if (This.scrollTop === 0) {
          clearInterval(timer)
        }
      }, 16)
    },
    // 计算距离顶部的高度,当高度大于200显示回顶部图标,小于200则隐藏
    scrollToTop () {
      let This = this
      let dom = document.getElementsByClassName('content')[0];//获取滑动模块的信息(注意class别写错)
      This.scrollTop = dom.scrollTop;
      if (This.scrollTop > 200) {
        This.btnFlag = true
      } else {
        This.btnFlag = false
      }
    }
  }
 }
</script>
<style lang="scss">
 @import '../styles/mixin';
 .scrollTop-wrap {
  position: relative;
  .go-top{
   position: absolute;
   top: 430px;
   left: 260px;
   z-index: 15;
   .iconhuidaodingbu{
     font-size: 30px;
     color: #87878A;
     background-color:#fff;
     border-radius: 50%;
   }
  }
 }
</style>

在其他页面引用一下:

<template>
 <div class="wtll-wrap">
  <div calss="content">
     这里是你的滑动内容
  </div>
  <scrollTop></scrollTop>
 </div>
</template>
<script>
 import scrollTop from '../components/scrollTop'
 export default {
  name: 'wtll',
  data: function () {
   return {
   }
  },
  components: {
   scrollTop
  },
  methods: {
  }
 }
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
User Scripts: Video Download by User Scripts
May 14 Javascript
广告切换效果(缓动切换)
May 27 Javascript
jquery下将选择的checkbox的id组成字符串的方法
Nov 28 Javascript
javascript 使用 NodeList需要注意的问题
Mar 04 Javascript
JQuery实现动态适时改变字体颜色的方法
Mar 10 Javascript
js 获取元素在页面上的偏移量的方法汇总
Apr 13 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
May 27 Javascript
Bootstrap栅格系统使用方法及页面调整变形的解决方法
Mar 10 Javascript
vue环形进度条组件实例应用
Oct 10 Javascript
详解用场景去理解函数柯里化(入门篇)
Apr 11 Javascript
使用vue自定义指令开发表单验证插件validate.js
May 23 Javascript
js通过循环多张图片实现动画效果
Dec 19 Javascript
Vue实现回到顶部和底部动画效果
Jul 31 #Javascript
详解mpvue实现对苹果X安全区域的适配
Jul 31 #Javascript
vue将后台数据时间戳转换成日期格式
Jul 31 #Javascript
Vue Element UI + OSS实现上传文件功能
Jul 31 #Javascript
原生js代码能实现call和bind吗
Jul 31 #Javascript
微信小程序下拉框搜索功能的实现方法
Jul 31 #Javascript
javascript中undefined的本质解析
Jul 31 #Javascript
You might like
PHP如何编写易读的代码
2007/07/10 PHP
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
ThinkPHP查询中的魔术方法简述
2014/06/25 PHP
ThinkPHP标签制作教程
2014/07/10 PHP
thinkPHP5.0框架开发规范简介
2017/03/25 PHP
jQuery对象和DOM对象使用说明
2010/06/25 Javascript
js中将URL中的参数提取出来作为对象的实现代码
2011/08/16 Javascript
jQuery焦点图切换简易插件制作过程全纪录
2014/08/27 Javascript
Backbone.js的一些使用技巧
2015/07/01 Javascript
基于node实现websocket协议
2016/04/25 Javascript
深入理解Javascript中的自执行匿名函数
2016/06/03 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python 正则式 概述及常用字符
2009/05/07 Python
Python中的条件判断语句基础学习教程
2016/02/07 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
python爬取股票最新数据并用excel绘制树状图的示例
2021/03/01 Python
Jacques Lemans德国:奥地利钟表品牌
2019/12/26 全球购物
如何在存储过程中使用Loop
2016/01/05 面试题
给男朋友的道歉信
2014/01/12 职场文书
大学生自助营养快餐店创业计划书
2014/01/13 职场文书
护理工作感言
2014/01/16 职场文书
2014年社会实践活动总结范文
2014/04/29 职场文书
节能环保演讲稿
2014/08/28 职场文书
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
房屋租赁协议书(标准版)
2014/10/02 职场文书
劳动争议和解协议书范本
2014/11/20 职场文书
2014年小学图书室工作总结
2014/12/09 职场文书
2014年小学教导处工作总结
2014/12/19 职场文书
2015年医院工作总结范文
2015/04/09 职场文书
2016年教师学习廉政准则心得体会
2016/01/20 职场文书
年终奖金发放管理制度,中小企业适用,拿去救急吧!
2019/07/12 职场文书
MySQL的意向共享锁、意向排它锁和死锁
2022/07/15 MySQL