vue backtop组件的实现完整代码


Posted in Vue.js onApril 07, 2021

效果:

vue backtop组件的实现完整代码

代码:

<template>
 <div class="back-top">
  <div >
   <img src="imgsrc" class="line" :class="isHide? 'isHide': 'isShow'" :style="{display: (firstShow? 'block': 'none')}" @click="backTop">
  </div>
 </div>
</template>

<script>
export default {
 name: "backTop",
 data(){
  return {
   firstShow: false,//初始化隐藏组件
   isHide: false,
   scrollFLag: true,
  }
 },
 created() {
  document.addEventListener('scroll', () => {
   let scroll = document.documentElement.scrollTop
   if(scroll > 200){
    this.isHide = false
    this.firstShow = true
   }else{
    this.isHide = true
   }
  })
 },
 methods: {
  backTop(){
   if(this.scrollFLag){
    this.scrollFLag = false
    //屏幕高度
    let scroll = document.documentElement.scrollTop
    let scrollTimer = setInterval(()=> {
     scroll -= 50
     document.documentElement.scrollTop = Math.max(scroll, 0)
     if( scroll <= 0){
      clearInterval(scrollTimer)
     }
    }, 10)
    this.scrollFLag = true
   }
  },
 },
}
</script>

<style scoped lang="scss">
.back-top{
 position: fixed;
 top: 0;
 right: 10vw;
 width: 20px;
 height: 500px;
 z-index: 200;
 .line{
  width: 12vw;
  height: 100%;
  z-index: 20;
  cursor: pointer;
  opacity: 0.8;
  transform: translateY(-100%);
  &:hover{
   opacity: 1;
  }
 }
 .isShow{
  animation: back-top-move 0.5s forwards linear, back-top-yurayura 2s 0.6s forwards linear infinite;
 }
 .isHide{
  animation: back-top-hide 0.5s forwards linear;
 }
}

@keyframes back-top-hide {
 from {
  transform: translateY(0);
 }
 to {
  transform: translateY(-100%);
 }
}

@keyframes back-top-move {
 to {
  transform: translateY(0);
 }
}
@keyframes back-top-yurayura {
 0%{transform-origin: top center;transform: rotate(0)}
 25%{transform-origin: top center;transform: rotate(2deg)}
 75%{transform-origin: top center;transform: rotate(-2deg)}
 100%{transform-origin: top center;transform: rotate(0)}
}
</style>

到此这篇关于vue backtop组件的实现完整代码的文章就介绍到这了,更多相关vue backtop组件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
解决vue elementUI 使用el-select 时 change事件的触发问题
Nov 17 Vue.js
用vue设计一个日历表
Dec 03 Vue.js
vuex的使用和简易实现
Jan 07 Vue.js
Vue3 Composition API的使用简介
Mar 29 Vue.js
vue前端工程的搭建
Mar 31 Vue.js
vue首次渲染全过程
Apr 21 Vue.js
Vue如何实现组件间通信
May 15 Vue.js
Vue-Element-Admin集成自己的接口实现登录跳转
Jun 23 Vue.js
三种方式清除vue路由跳转router-link的历史记录
Apr 10 Vue.js
vue3语法糖内的defineProps及defineEmits
Apr 14 Vue.js
vue中data里面的数据相互使用方式
Jun 05 Vue.js
Vue Element plus使用方法梳理
Dec 24 Vue.js
vue中三级导航的菜单权限控制
Mar 31 #Vue.js
vue3中的组件间通信
vue前端工程的搭建
vue中data改变后让视图同步更新的方法
vue3如何优雅的实现移动端登录注册模块
开发一个封装iframe的vue组件
如何让vue长列表快速加载
You might like
php 深入理解strtotime函数的使用详解
2013/05/23 PHP
解析php中的escape函数
2013/06/29 PHP
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
firefox浏览器不支持innerText的解决方法
2013/08/07 Javascript
JS格式化数字保留两位小数点示例代码
2013/10/15 Javascript
javascript 10进制和62进制的相互转换
2014/07/31 Javascript
jQuery如何防止这种冒泡事件发生
2015/02/27 Javascript
jquery+css实现动感的图片切换效果
2015/11/25 Javascript
Bootstrap中CSS的使用方法
2016/02/17 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
微信小程序实现文字跑马灯效果
2020/05/26 Javascript
微信小程序搭建(mpvue+mpvue-weui+fly.js)的详细步骤
2018/09/18 Javascript
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
了解在JavaScript中将值转换为字符串的5种方法
2019/06/06 Javascript
[01:56]无止竞 再出发——中国军团出征2017年DOTA2国际邀请赛
2017/07/05 DOTA
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2014/11/28 Python
一篇文章读懂Python赋值与拷贝
2018/04/19 Python
python中map的基本用法示例
2018/09/10 Python
pandas重新生成索引的方法
2018/11/06 Python
Python使用微信接入图灵机器人过程解析
2019/11/04 Python
基于Python中的yield表达式介绍
2019/11/19 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
2019/11/28 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
PyTorch的torch.cat用法
2020/06/28 Python
浅析python 通⽤爬⾍和聚焦爬⾍
2020/09/28 Python
什么是虚拟内存?虚拟内存有什么优势?
2016/02/09 面试题
专科文秘应届生求职信
2013/11/18 职场文书
怎样写好自荐信和推荐信
2013/12/26 职场文书
2014年入党积极分子学习三中全会思想汇报
2014/09/13 职场文书
职业生涯规划书怎么写?
2014/09/14 职场文书
银行客户经理岗位职责
2015/04/09 职场文书
一百条裙子读书笔记
2015/07/01 职场文书
青少年法制教育心得体会
2016/01/14 职场文书
小学英语新课改心得体会
2016/01/22 职场文书
优秀大学生申请书
2019/06/24 职场文书