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 写的一个简单的timer
Jul 30 Javascript
js函数的延迟加载实现代码
Oct 11 Javascript
表单元素的submit()方法和onsubmit事件应用概述
Feb 01 Javascript
js中indexof的用法详细解析
Dec 24 Javascript
关于js数组去重的问题小结
Jan 24 Javascript
js 获取、清空input type=&quot;file&quot;的值示例代码
Feb 19 Javascript
jQuery常用且重要方法汇总
Jul 13 Javascript
jquery悬浮提示框完整实例
Jan 13 Javascript
jQuery和JavaScript节点插入元素的方法对比
Nov 18 Javascript
Javascript之面向对象--方法
Dec 02 Javascript
Angular4学习笔记之新建项目的方法
Jul 18 Javascript
JavaScript实现单英文金山打字通
Jul 24 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
《星际争霸重制版》兵种对比图鉴
2020/03/02 星际争霸
apache2.2.4+mysql5.0.77+php5.2.8安装精简
2009/04/29 PHP
PHP设计模式之解释器模式的深入解析
2013/06/13 PHP
php通过array_merge()函数合并关联和非关联数组的方法
2015/03/18 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
Javascript 判断Flash是否加载完成的代码
2010/04/12 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
onmouseover和onmouseout的一些问题思考
2013/08/14 Javascript
jquery数组封装使用方法分享(jquery数组遍历)
2014/03/25 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
2016/08/24 Javascript
Node.js检测端口(port)是否被占用的简单示例
2016/09/29 Javascript
使用Node.js实现ORM的一种思路详解(图文)
2017/10/24 Javascript
微信小程序scroll-view仿拼多多横向滑动滚动条
2020/04/21 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
Node.js实现简单的爬取的示例代码
2019/06/25 Javascript
微信小程序如何利用getCurrentPages进行页面传值
2019/07/01 Javascript
electron-vue开发环境内存泄漏问题汇总
2019/10/10 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
2020/08/07 jQuery
[43:43]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第一场 11.22
2020/11/24 DOTA
Python单元测试unittest的具体使用示例
2018/12/17 Python
利用Python正则表达式过滤敏感词的方法
2019/01/21 Python
Python中调用其他程序的方式详解
2019/08/06 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
2020/03/13 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
用Python开发app后端有优势吗
2020/06/29 Python
用CSS3实现无限循环的无缝滚动的实例代码
2017/07/04 HTML / CSS
Mio Skincare英国官网:身体紧致及孕期身体护理
2018/08/19 全球购物
婚假请假条格式及范文
2014/04/10 职场文书
一分钟演讲稿
2014/04/30 职场文书
教研处工作方案
2014/05/26 职场文书
2014年法院工作总结
2014/11/24 职场文书
泰山导游词
2015/02/02 职场文书
Pandas-DataFrame知识点汇总
2022/03/16 Python