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 相关文章推荐
跟着JQuery API学Jquery 之二 属性
Apr 09 Javascript
超级好用的jQuery圆角插件 Corner速成
Aug 31 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
Mar 17 Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
Mar 18 Javascript
javascript实现label标签跳出循环操作
Mar 06 Javascript
jQuery中$.each()函数的用法引申实例
May 12 Javascript
Ajax与服务器(JSON)通信实例代码
Nov 05 Javascript
jQuery操作css样式
May 15 jQuery
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
Oct 19 jQuery
vuex state及mapState的基础用法详解
Apr 19 Javascript
vue-content-loader内容加载器的使用方法
Aug 05 Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
Jan 25 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
用sql命令修改数据表中的一个字段为非空(not null)的语句
2010/06/04 PHP
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
2017/02/08 PHP
PHP读取Excel类文件
2017/05/15 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
解决 firefox 不支持 document.all的方法
2007/03/12 Javascript
jQuery对表单的操作代码集合
2011/04/06 Javascript
JavaScript中的细节分析
2012/06/30 Javascript
无缝滚动改进版支持上下左右滚动(封装成函数)
2012/12/04 Javascript
jQuery 仿百度输入标签插件附效果图
2014/07/04 Javascript
JavaScript中消除闭包的一般方法介绍
2015/03/16 Javascript
Nodejs实战心得之eventproxy模块控制并发
2015/10/27 NodeJs
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
深入理解Node.js中的进程管理
2017/03/13 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
React中jquery引用的实现方法
2017/09/12 jQuery
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
Webpack的dll功能使用
2018/06/28 Javascript
详解Angular中通过$location获取地址栏的参数
2018/08/02 Javascript
vue实现购物车功能(商品分类)
2020/04/20 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
vue-calendar-component 封装多日期选择组件的实例代码
2020/12/04 Vue.js
使用Python的Flask框架表单插件Flask-WTF实现Web登录验证
2016/07/12 Python
Django Web开发中django-debug-toolbar的配置以及使用
2018/05/06 Python
python逆序打印各位数字的方法
2018/06/25 Python
Django Admin中增加导出Excel功能过程解析
2019/09/04 Python
基于Python+Appium实现京东双十一自动领金币功能
2019/10/31 Python
python调用c++返回带成员指针的类指针实例
2019/12/12 Python
python使用Word2Vec进行情感分析解析
2020/07/31 Python
Melissa鞋英国官方网站:Nonnon
2019/05/01 全球购物
自主招生自荐信范文
2013/12/04 职场文书
2015年信息中心工作总结
2015/05/25 职场文书
银行培训心得体会范文
2016/01/09 职场文书
Golang 如何实现函数的任意类型传参
2021/04/29 Golang
Pycharm 如何设置HTML文件自动补全代码或标签
2021/05/21 Python
JavaScript文档对象模型DOM
2021/11/20 Javascript