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中的生命周期
Dec 30 Vue.js
vue3.0中友好使用antdv示例详解
Jan 05 Vue.js
vue集成一个支持图片缩放拖拽的富文本编辑器
Jan 29 Vue.js
Vue多选列表组件深入详解
Mar 02 Vue.js
vue中axios封装使用的完整教程
Mar 03 Vue.js
开发一个封装iframe的vue组件
Mar 29 Vue.js
vue中三级导航的菜单权限控制
Mar 31 Vue.js
详解vue身份认证管理和租户管理
May 25 Vue.js
vue项目支付功能代码详解
Feb 18 Vue.js
详解Vue中$props、$attrs和$listeners的使用方法
Feb 18 Vue.js
Vue中Object.assign清空数据报错的解决方案
Mar 03 Vue.js
关于vue-router-link选择样式设置
Apr 30 Vue.js
vue中三级导航的菜单权限控制
Mar 31 #Vue.js
vue3中的组件间通信
vue前端工程的搭建
vue中data改变后让视图同步更新的方法
vue3如何优雅的实现移动端登录注册模块
开发一个封装iframe的vue组件
如何让vue长列表快速加载
You might like
PHP JSON 数据解析代码
2010/05/26 PHP
php str_replace替换指定次数的方法详解
2017/05/05 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
2017/09/04 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
js tab 选项卡
2009/04/26 Javascript
基于Jquery的跨域传输数据(JSONP)
2011/03/10 Javascript
jQuery Tab插件 用于在Tab中显示iframe,附源码和详细说明
2011/06/27 Javascript
基于jquery的loading 加载提示效果实现代码
2011/09/01 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
js中document.write的那点事
2014/12/12 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
javascript创建对象的3种方法
2016/11/02 Javascript
jquery实现焦点轮播效果
2017/02/23 Javascript
Bootstrap Scrollspy源码学习
2017/03/02 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
js实现产品缩略图效果
2017/03/10 Javascript
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
python spyder中读取txt为图片的方法
2018/04/27 Python
python 使用pandas计算累积求和的方法
2019/02/08 Python
django模板结构优化的方法
2019/02/28 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
2020/01/16 Python
CSS3 简写animation
2012/05/10 HTML / CSS
瑜伽服装品牌:露露柠檬(lululemon athletica)
2017/06/04 全球购物
5.12护士节演讲稿
2014/04/30 职场文书
小班评语大全
2014/05/04 职场文书
小学优秀班集体申报材料
2014/05/25 职场文书
信息工作经验交流材料
2014/05/28 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
大学课外活动总结
2014/07/09 职场文书
女生抽烟检讨书
2014/10/05 职场文书
学校少先队工作总结
2015/08/12 职场文书
python中if和elif的区别介绍
2021/11/07 Python
详解Go语言中Get/Post请求测试
2022/06/01 Golang