首页 > 其他分享 >vue点击回到顶部

vue点击回到顶部

时间:2022-08-30 09:00:43浏览次数:49  
标签:body vue 顶部 距离 点击 scrollTop osTop document

  回到顶部实现过程注解:         1.获取当前页面距离顶部的距离         2.计算出每次向上移动的距离,用负的滚动距离除以5,因为滚动的距离是一个正数,想向上移动就是一个减法         3.用当前距离加上计算出的距离,然后赋值给当前距离,就可以达到向上移动的效果         4.最后在移动到顶部的时候,清除定时器       vue

  <div class="top" v-show="showBtn" @click="backTop">back</div>

 

data
 showBtn: false,

 

mounted
 mounted() {
        window.addEventListener("scroll", this.showbtn, true)
    },

 

methods
    // 回到顶部
        showbtn() {
            let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
            if (scrollTop > 1000) {
                this.showBtn = true;
            } else {
                this.showBtn = false;
            }
        },

  
        backTop() {
            var timer = setInterval(function () {
                let osTop = document.documentElement.scrollTop || document.body.scrollTop;
                let ispeed = Math.floor(-osTop / 5);
                document.documentElement.scrollTop = document.body.scrollTop = osTop + ispeed;
                this.isTop = true;
                if (osTop === 0) { clearInterval(timer) }
            }, 80);
        },

 

标签:body,vue,顶部,距离,点击,scrollTop,osTop,document
From: https://www.cnblogs.com/CaraganaMicrophylla/p/16638088.html

相关文章

  • vue PC端调用摄像头实现人脸识别
    一、思路vue打开摄像头获取视频流数据->截取视频流通过canvas绘制图片->图片传到服务器识别(后端使用的是阿里的人脸识别api)二、直接上代码<template><divclass="fac......
  • vue3项目-小兔鲜儿笔记-首页03
    1.面板封装提取首页的公用面板进行复用头部标题和副标题由props传入右侧内容由具名插槽right传入查看更多封装成全局组件主体由默认插槽传入......
  • 【Vue面试题】谈谈你对Vue的diff算法的理解
    1diff算法到底是什么?diff算法是一种通过同层的树节点进行比较的高效算法,它可以不用频繁操作DOM,而是选用虚拟DOM节点操作,说人话就是专门用来处理虚拟DOM节点的。2操作......
  • vue学习之------vue-router【路由生命周期(也叫“导航守卫”)】
    1、全局导航守卫2、路由规则自己的守卫3、组件内部的导航守卫 ......
  • vue3 基础-事件绑定 & 修饰符
    无非就是js的一些事件,按键,鼠标等的一些绑定在vue的实现而已,很好理解.先来看一个基础例子.事件初体验<!DOCTYPEhtml><htmllang="en"><head><title>事......
  • Vue面试题之如何解决vue第一次加载的时候 页面上使用的数据会闪烁?
    引起数据闪烁的原因:界面加载的时候会把节点直接挂载到文档树中,导致{{msg+"666"}}这个字符串会显示一下,vue对象生成data数据时候回去刷新界面把{{msg+"666"}}字符串替换成......
  • Vue的基础指令
    1.普通插值表达式插入数据<body> <divid="app"> <div>{{text1}}</div> <div>{{text2}}</div> </div></body><script> newVue({ el:"#app", data:{ tex......
  • 什么是vue⽣命周期?
    什么是vue⽣命周期?vue⽣命周期都有哪些钩⼦函数?这些钩⼦函数如何触发? 项⽬开发过程中,在⽣命周期⾥⾯都分别做过什么功能? ⻚⾯第⼀次加载时⽗⼦组件⽣命周期执⾏的顺......
  • 给vue单页面绑定快捷键
    created(){//添加快捷键document.addEventListener('keyup',this.handleKeyUp)},destroyed(){//删除快捷键document.removeEventListene......
  • 引入VUE的方式(8种)
    第一类:1、本地引入把vue的js文件下载下来引入   2、CDN引入把vue.js网址引入   3、把vue.js文件放在项目文件夹src中引入项目然后webpack打包 4、......