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防抖与节流
Nov 24 Vue.js
Vue3配置axios跨域实现过程解析
Nov 25 Vue.js
vue3.0+vue-router+element-plus初实践
Dec 02 Vue.js
Vue-router中hash模式与history模式的区别详解
Dec 15 Vue.js
Vue中computed和watch有哪些区别
Dec 19 Vue.js
vue 使用rules对表单字段进行校验的步骤
Dec 25 Vue.js
Vue实现随机验证码功能
Dec 29 Vue.js
vue实现树状表格效果
Dec 29 Vue.js
vue使用过滤器格式化日期
Jan 20 Vue.js
Vue鼠标滚轮滚动切换路由效果的实现方法
Aug 04 Vue.js
vue封装数字翻牌器
Apr 20 Vue.js
vue实现简易音乐播放器
Aug 14 Vue.js
vue中三级导航的菜单权限控制
Mar 31 #Vue.js
vue3中的组件间通信
vue前端工程的搭建
vue中data改变后让视图同步更新的方法
vue3如何优雅的实现移动端登录注册模块
开发一个封装iframe的vue组件
如何让vue长列表快速加载
You might like
php入门教程 精简版
2009/12/13 PHP
基于asp+ajax和数据库驱动的二级联动菜单
2010/05/06 PHP
从php核心代码分析require和include的区别
2011/01/02 PHP
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
javascript 对象定义方法 简单易学
2009/03/22 Javascript
帮助避免错误的Javascript陷阱清单
2009/05/31 Javascript
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
a标签的href和onclick 的事件的区别介绍
2013/07/26 Javascript
Jquery 模拟用户点击超链接或者按钮的方法
2013/10/25 Javascript
jquery果冻抖动效果实现方法
2015/01/15 Javascript
JavaScript判断表单中多选框checkbox选中个数的方法
2015/08/17 Javascript
jquery zTree异步加载简单实例讲解
2016/02/25 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
JavaScript 基础表单验证示例(纯Js实现)
2017/07/20 Javascript
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
Angular5.1新功能分享
2017/12/21 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
2020/07/22 Javascript
在Python中使用异步Socket编程性能测试
2014/06/25 Python
python3.6的venv模块使用详解
2018/08/01 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
python集合是否可变总结
2019/06/20 Python
Django中使用session保持用户登陆连接的例子
2019/08/06 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
浅谈HTML5 FileReader分布读取文件以及其方法简介
2017/11/09 HTML / CSS
全球精选男装和家居用品:Article
2020/04/13 全球购物
精神病医院见习报告
2014/11/03 职场文书
民事上诉状范文
2015/05/22 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js
Golang Web 框架Iris安装部署
2022/08/14 Python