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 29 Vue.js
vue调用微信JSDK 扫一扫,相册等需要注意的事项
Jan 03 Vue.js
vue+vant 上传图片需要注意的地方
Jan 03 Vue.js
vue实现验证用户名是否可用
Jan 20 Vue.js
vue 项目@change多个参数传值多个事件的操作
Jan 29 Vue.js
用vite搭建vue3应用的实现方法
Feb 22 Vue.js
如何理解Vue前后端数据交互与显示
May 10 Vue.js
vue+element ui实现锚点定位
Jun 29 Vue.js
vue实现移动端div拖动效果
Mar 03 Vue.js
关于Vue中的options选项
Mar 22 Vue.js
Axios代理配置及封装响应拦截处理方式
Apr 07 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 disk_free_space 返回目录可用空间
2010/05/10 PHP
php数组键值用法实例分析
2015/02/27 PHP
php实现支付宝当面付(扫码支付)功能
2018/05/30 PHP
Yii框架核心组件类实例详解
2019/08/06 PHP
php命令行模式代码实例详解
2021/02/26 PHP
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
2010/05/13 Javascript
jQuery动画效果-fadeIn fadeOut淡入浅出示例代码
2013/08/28 Javascript
Flexigrid在IE下不显示数据的处理的解决方法
2013/10/24 Javascript
jquery中EasyUI使用技巧小结
2015/02/10 Javascript
JavaScript获得页面base标签中url的方法
2015/04/03 Javascript
MUI  Scroll插件的使用详解
2017/04/13 Javascript
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
对Vue table 动态表格td可编辑的方法详解
2018/08/28 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
2018/12/13 Javascript
使用python搭建Django应用程序步骤及版本冲突问题解决
2013/11/19 Python
Python struct模块解析
2014/06/12 Python
Python实现Const详解
2015/01/27 Python
Python中的异常处理学习笔记
2015/01/28 Python
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
python使用pymysql实现操作mysql
2016/09/13 Python
Python序列操作之进阶篇
2016/12/08 Python
Python基础练习之用户登录实现代码分享
2017/11/08 Python
基于python OpenCV实现动态人脸检测
2018/05/25 Python
python中使用print输出中文的方法
2018/07/16 Python
Python中的CSV文件使用&quot;with&quot;语句的方式详解
2018/10/16 Python
python编写俄罗斯方块
2020/03/13 Python
Python使用socketServer包搭建简易服务器过程详解
2020/06/12 Python
基于python模拟bfs和dfs代码实例
2020/11/19 Python
html5读取本地文件示例代码
2014/04/22 HTML / CSS
计算 s=(x*y)1/2,用两个宏定义来实现
2016/08/11 面试题
《理想的风筝》教学反思
2014/04/11 职场文书
党员一帮一活动总结
2014/07/08 职场文书
2014年学校领导班子对照检查材料
2014/09/19 职场文书
门店店长岗位职责
2015/04/14 职场文书
Python中如何处理常见报错
2022/01/18 Python
蓝牙耳机怎么连接电脑win11? Win11蓝牙耳机连接电脑的技巧
2023/01/09 数码科技