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实现的让超出显示范围外的导航自动固定屏幕最顶上
Sep 22 Javascript
Javascript 数组排序详解
Oct 22 Javascript
jQuery中has()方法用法实例
Jan 06 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
Jun 01 Javascript
Bootstrap基本样式学习笔记之表单(3)
Dec 07 Javascript
JavaScript中 this 指向问题深度解析
Feb 21 Javascript
Angular动态添加、删除输入框并计算值实例代码
Mar 29 Javascript
编写React组件项目实践分析
Mar 04 Javascript
微信小程序实现分享商品海报功能
Sep 30 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
Feb 13 Javascript
vue实现的多页面项目如何优化打包的步骤详解
Jul 19 Javascript
Vue.Draggable实现交换位置
Apr 07 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 获取远程网页内容的函数
2009/09/08 PHP
PHP 开发环境配置(测试开发环境)
2010/04/28 PHP
让PHP COOKIE立即生效,不用刷新就可以使用
2011/03/09 PHP
PHP实现可自定义样式的分页类
2016/03/29 PHP
JQuery 小练习(实例代码)
2009/08/07 Javascript
基于jQuery的倒计时插件代码
2011/05/07 Javascript
JavaScript中instanceof运算符的用法总结
2013/11/19 Javascript
js,jquery滚动/跳转页面到指定位置的实现思路
2014/06/03 Javascript
javascript实现框架高度随内容改变的方法
2015/07/23 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
js数组去重的5种算法实现
2015/11/04 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
js HTML5手机刮刮乐代码
2020/09/29 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
JavaScript编写九九乘法表(两种任选)
2017/02/04 Javascript
javaScript嗅探执行神器-sniffer.js
2017/02/14 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
2017/10/17 Javascript
微信小程序实现YDUI的ScrollTab组件
2018/02/02 Javascript
JavaScript中Object基础内部方法图
2018/02/05 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
vue项目刷新当前页面的三种方法
2018/12/04 Javascript
Vue——解决报错 Computed property &quot;****&quot; was assigned to but it has no setter.
2020/12/19 Vue.js
python基础教程之循环介绍
2014/08/29 Python
python使用matplotlib绘图时图例显示问题的解决
2017/04/27 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
python对文件的操作方法汇总
2020/02/28 Python
django-orm F对象的使用 按照两个字段的和,乘积排序实例
2020/05/18 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
PyCharm Community安装与配置的详细教程
2020/11/24 Python
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
牧马人澳大利亚官网:Wrangler澳大利亚
2019/10/08 全球购物
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
辩护词格式
2015/05/22 职场文书
刑事上诉状范文
2015/05/22 职场文书
写给汽车4S店的创业计划书,拿来即用!
2019/08/09 职场文书
Python开发五子棋小游戏
2022/05/02 Python