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 相关文章推荐
Extjs学习笔记之二 初识Extjs之Form
Jan 07 Javascript
基于JS实现数字+字母+中文的混合排序方法
Jun 06 Javascript
AngularJS中实现动画效果的方法
Jul 28 Javascript
js实现常用排序算法
Aug 09 Javascript
jQuery基于cookie实现换肤功能实例
Oct 14 jQuery
关于vue单文件中引用路径的处理方法
Jan 08 Javascript
React 高阶组件入门介绍
Jan 11 Javascript
Javascript获取某个月的天数
May 30 Javascript
详解JavaScript事件循环机制
Sep 07 Javascript
Vue注册组件命名时不能用大写的原因浅析
Apr 25 Javascript
详解vue中使用protobuf踩坑记
May 07 Javascript
vue中音频wavesurfer.js的使用方法
Feb 20 Vue.js
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实现的简单压缩英文字符串的代码
2008/04/24 PHP
PHP 进程锁定问题分析研究
2009/11/24 PHP
php使用mkdir创建多级目录入门例子
2014/05/10 PHP
curl和libcurl的区别简介
2015/07/01 PHP
将查询条件的input、select清空
2014/01/14 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
2016/07/12 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
2016/08/19 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
jQuery实现点击任意位置弹出层外关闭弹出层效果
2016/10/19 Javascript
canvas实现图片根据滑块放大缩小效果
2017/02/24 Javascript
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
详解js加减乘除精确计算
2019/03/19 Javascript
JS代码实现页面切换效果
2021/01/10 Javascript
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
Python的Django框架安装全攻略
2015/07/15 Python
Python基于PycURL实现POST的方法
2015/07/25 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
tensorflow: 查看 tensor详细数值方法
2018/06/13 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
Python3 读取Word文件方式
2020/02/13 Python
Django通过json格式收集主机信息
2020/05/29 Python
浅谈python 调用open()打开文件时路径出错的原因
2020/06/05 Python
python如何代码集体右移
2020/07/20 Python
HTML5印章绘制电子签章图片(中文英文椭圆章、中文英文椭圆印章)
2019/06/03 HTML / CSS
锐步香港官方网上商店:Reebok香港
2020/11/05 全球购物
Unix如何添加新的用户
2014/08/20 面试题
计算机专业学生求职信分享
2013/12/15 职场文书
给学校的建议书
2014/03/12 职场文书
竞选班长演讲稿400字
2014/08/22 职场文书
行政秘书工作自我鉴定
2014/09/15 职场文书
工厂见习报告范文
2014/10/31 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
志愿者工作心得体会
2016/01/15 职场文书
JavaScript中reduce()的用法
2022/05/11 Javascript