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 相关文章推荐
showModalDialog模态对话框的使用详解以及浏览器兼容
Jan 11 Javascript
javascript中直接引用Microsoft的COM生成Word
Jan 20 Javascript
js如何获取object类型里的键值
Feb 18 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
Feb 20 Javascript
JavaScript 匿名函数和闭包介绍
Apr 13 Javascript
理解JavaScript中worker事件api
Dec 25 Javascript
jQuery中的通配符选择器使用总结
May 30 Javascript
js实现简单的选项卡效果
Feb 23 Javascript
深究AngularJS中ng-drag、ng-drop的用法
Jun 12 Javascript
vue如何使用 Slot 分发内容实例详解
Sep 05 Javascript
Rollup处理并打包JS文件项目实例代码
May 31 Javascript
javascript中数组的常用算法深入分析
Mar 12 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 HTML代码串 截取实现代码
2009/06/29 PHP
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
获取URL文件名后缀
2013/10/24 PHP
PHP导出Excel实例讲解
2016/01/24 PHP
php array_udiff_assoc 计算两个数组的差集实例
2016/11/12 PHP
php从数据库读取数据,并以json格式返回数据的方法
2018/08/21 PHP
Ajax请求PHP后台接口返回信息的实例代码
2018/08/21 PHP
javascript eval和JSON之间的联系
2009/12/31 Javascript
JavaScript实现彩虹文字效果的方法
2015/04/16 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
2016/06/03 Javascript
JS遍历ul下的li点击弹出li的索引的实现方法
2016/09/19 Javascript
简单的js表格操作
2016/09/24 Javascript
Bootstrap Table的使用总结
2016/10/08 Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
2016/11/04 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
nodejs实现简单的gulp打包
2017/12/21 NodeJs
babel的使用及安装配置教程
2018/02/22 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
vue element动态渲染、移除表单并添加验证的实现
2019/01/16 Javascript
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
python实现石头剪刀布小游戏
2021/01/20 Python
如何使用python操作vmware
2019/07/27 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
Python chardet库识别编码原理解析
2020/02/18 Python
Python sklearn中的.fit与.predict的用法说明
2020/06/28 Python
英国羊绒服装购物网站:Pure Collection
2018/10/22 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述。
2015/11/09 面试题
什么是.net
2015/08/03 面试题
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
2014年政工师工作总结
2014/12/18 职场文书
教师节主题班会方案
2015/08/17 职场文书
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL
CSS中理解层叠性及权重如何分配
2022/12/24 HTML / CSS