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中通过render函数给子组件设置ref操作
Nov 17 Vue.js
Vue实现购物小球抛物线的方法实例
Nov 22 Vue.js
vue单元格多列合并的实现
Nov 26 Vue.js
Vue 实现一个简单的鼠标拖拽滚动效果插件
Dec 10 Vue.js
Vue实现简单购物车功能
Dec 13 Vue.js
vue从后台渲染文章列表以及根据id跳转文章详情详解
Dec 14 Vue.js
vue使用require.context实现动态注册路由
Dec 25 Vue.js
jenkins自动构建发布vue项目的方法步骤
Jan 04 Vue.js
Vue页面渲染中key的应用实例教程
Jan 12 Vue.js
Vue项目打包、合并及压缩优化网页响应速度
Jul 07 Vue.js
Vue鼠标滚轮滚动切换路由效果的实现方法
Aug 04 Vue.js
vue选项卡切换的实现案例
Apr 11 Vue.js
vue中三级导航的菜单权限控制
Mar 31 #Vue.js
vue3中的组件间通信
vue前端工程的搭建
vue中data改变后让视图同步更新的方法
vue3如何优雅的实现移动端登录注册模块
开发一个封装iframe的vue组件
如何让vue长列表快速加载
You might like
PHP与MongoDB简介|安全|M+PHP应用实例详解
2013/06/17 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
JqGrid web打印实现代码
2011/05/31 Javascript
关于JavaScript中的关联数组分析
2013/04/09 Javascript
js之onload事件的一点使用心得
2013/08/14 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
2015/11/15 Javascript
Angular 作用域scope的具体使用
2017/12/11 Javascript
微信小程序实现YDUI的ScrollTab组件
2018/02/02 Javascript
jquery 验证用户名是否重复代码实例
2019/05/14 jQuery
vue form表单post请求结合Servlet实现文件上传功能
2021/01/22 Vue.js
[01:44]《为梦想出发》—联想杯DOTA2完美世界全国高校联赛
2015/09/30 DOTA
[04:00]黄浦江畔,再会英雄——完美世界DOTA2 TI9应援视频
2019/07/31 DOTA
python中wx将图标显示在右下角的脚本代码
2013/03/08 Python
python接口自动化测试之接口数据依赖的实现方法
2019/04/26 Python
解决Python设置函数调用超时,进程卡住的问题
2019/08/08 Python
Python如何用filter函数筛选数据
2020/03/05 Python
使用OpenCV实现道路车辆计数的使用方法
2020/07/15 Python
HTML5里autofocus自动聚焦属性使用介绍
2016/06/22 HTML / CSS
JOSEPH官网:英国奢侈时尚品牌
2018/01/31 全球购物
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
Maison Lab荷兰:名牌Outlet购物
2018/08/10 全球购物
主管职责范文
2013/11/09 职场文书
党校培训自我鉴定范文
2014/03/20 职场文书
股权转让协议书
2014/04/12 职场文书
初中新生军训方案
2014/05/13 职场文书
通信工程求职信
2014/07/16 职场文书
三严三实对照检查材料范文
2014/09/23 职场文书
无房产证房屋转让协议书合同样本
2014/10/18 职场文书
机关干部四风问题自查报告及整改措施
2014/10/26 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
导游词之临安白水涧
2019/11/05 职场文书
CSS3 制作的悬停缩放特效
2021/04/13 HTML / CSS
Go语言设计模式之结构型模式
2021/06/22 Golang
总结python多进程multiprocessing的相关知识
2021/06/29 Python