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 相关文章推荐
javascript入门·对象属性方法大总结
Oct 01 Javascript
自己整理的一个javascript日期处理函数
Oct 16 Javascript
jquery组件使用中遇到的问题整理及解决
Feb 21 Javascript
判断JS对象是否拥有某属性的方法推荐
May 12 Javascript
js基于cookie方式记住返回页面用法示例
May 27 Javascript
js仿百度切换皮肤功能(html+css)
Jul 10 Javascript
js 判断附件后缀的简单实现方法
Oct 11 Javascript
解析js如何获取css样式
Dec 11 Javascript
jQuery简单实现遍历单选框的方法
Mar 06 Javascript
利用jqprint插件打印页面内容的实现方法
Jan 09 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
Oct 24 Javascript
详解Js模块化的作用原理和方案
Apr 29 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/01/04 PHP
php $_ENV为空的原因分析
2009/06/01 PHP
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
2013/07/01 PHP
PHP实现链式操作的核心思想
2015/06/23 PHP
PHP数组实例详解
2016/06/26 PHP
PHP中Cookie的使用详解(简单易懂)
2017/04/28 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
2019/08/14 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
Jquery之美中不足小结
2011/02/16 Javascript
jquery对象和DOM对象的区别介绍
2013/08/09 Javascript
jquery $.fn $.fx是什么意思有什么用
2013/11/04 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
JavaScript极简入门教程(一):基础篇
2014/10/25 Javascript
js实现超酷的照片墙展示效果图附源码下载
2015/10/08 Javascript
AngularJS入门教程之数据绑定用法示例
2016/11/01 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
jQuery实现判断上传图片类型和大小的方法示例
2018/04/11 jQuery
详解Vue中使用插槽(slot)、聚类插槽
2019/04/12 Javascript
Vue匿名插槽与作用域插槽的合并和覆盖行为
2019/04/22 Javascript
Elasticsearch实现复合查询高亮结果功能
2019/09/10 Javascript
微信小程序工具函数封装
2019/10/28 Javascript
django接入新浪微博OAuth的方法
2015/06/29 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
2019/12/12 Python
使用Python Tkinter实现剪刀石头布小游戏功能
2020/10/23 Python
pytorch 把图片数据转化成tensor的操作
2021/03/04 Python
使用css3实现的tab选项卡代码分享
2014/12/09 HTML / CSS
Miller Harris官网:英国小众香水品牌
2020/09/24 全球购物
大二学期个人自我评价
2014/01/13 职场文书
新浪微博实习心得体会
2014/01/27 职场文书
出纳员岗位职责
2014/03/13 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书
2015年乡镇科普工作总结
2015/05/13 职场文书
寻找成龙观后感
2015/06/12 职场文书
课改心得体会范文
2016/01/25 职场文书
深入浅出的讲解:信号调制到底是如何实现的
2022/02/18 无线电