1、创建“回到顶部”组件

  1. 1 <template>
  2. 2 <transition name="el-fade-in">
  3. 3 <div class="page-up" @click="scrollToTop" v-show="toTopShow">
  4. 4 <i class="el-icon-caret-top"></i>
  5. 5 </div>
  6. 6 </transition>
  7. 7 </template>
  8. 8
  9. 9 <script>
  10. 10 export default {
  11. 11 name: "app-to-top",
  12. 12 data(){
  13. 13 return{
  14. 14 toTopShow:false,
  15. 15 }
  16. 16 },
  17. 17 methods:{
  18. 18 handleScroll() {
  19. 19         /* 获取回到顶部的位置元素 .content-container-top */
  20. 20 let dom =document.getElementsByClassName('content-container-top')[0];
  21. 21 this.scrollTop = dom.scrollTop;
  22. 22 if (this.scrollTop > 300) {
  23. 23 this.toTopShow = true;
  24. 24 }else {
  25. 25 this.toTopShow = false;
  26. 26 }
  27. 27 },
  28. 28 scrollToTop() {
  29. 29 let timer = null;
  30. 30 let _this = this;
  31. 31 cancelAnimationFrame(timer);
  32. 32 timer = requestAnimationFrame(function fn() {
  33. 33 if (_this.scrollTop > 5000) {
  34. 34 _this.scrollTop -= 1000;
  35. 35 document.getElementsByClassName("content-container")[0].scrollTop =
  36. 36 _this.scrollTop;
  37. 37 timer = requestAnimationFrame(fn);
  38. 38 } else if (_this.scrollTop > 1000 && _this.scrollTop <= 5000) {
  39. 39 _this.scrollTop -= 500;
  40. 40 document.getElementsByClassName("content-container")[0].scrollTop =
  41. 41 _this.scrollTop;
  42. 42 timer = requestAnimationFrame(fn);
  43. 43 } else if (_this.scrollTop > 200 && _this.scrollTop <= 1000) {
  44. 44 _this.scrollTop -= 100;
  45. 45 document.getElementsByClassName("content-container")[0].scrollTop =
  46. 46 _this.scrollTop;
  47. 47 timer = requestAnimationFrame(fn);
  48. 48 } else if (_this.scrollTop > 50 && _this.scrollTop <= 200) {
  49. 49 _this.scrollTop -= 10;
  50. 50 document.getElementsByClassName("content-container")[0].scrollTop =
  51. 51 _this.scrollTop;
  52. 52 timer = requestAnimationFrame(fn);
  53. 53 } else if (_this.scrollTop > 0 && _this.scrollTop <= 50) {
  54. 54 _this.scrollTop -= 5;
  55. 55 document.getElementsByClassName("content-container")[0].scrollTop =
  56. 56 _this.scrollTop;
  57. 57 timer = requestAnimationFrame(fn);
  58. 58 } else {
  59. 59 cancelAnimationFrame(timer);
  60. 60 _this.toTopShow = false;
  61. 61 }
  62. 62 });
  63. 63 }
  64. 64 },
  65. 65 mounted() {
  66. 66 this.$nextTick(function () {
  67. 67 window.addEventListener('scroll', this.handleScroll,true);// 取消事件冒泡,防止绑定失败
  68. 68 });
  69. 69 },
  70. 70 destroyed() {
  71. 71 window.removeEventListener('scroll', this.handleScroll,true);// 取消事件冒泡
  72. 72 }
  73. 73 }
  74. 74 </script>
  75. 75
  76. 76 <style scoped>
  77. 77 .page-up{
  78. 78 background-color: #409eff;
  79. 79 position: fixed;
  80. 80 right: 50px;
  81. 81 bottom: 30px;
  82. 82 width: 40px;
  83. 83 height: 40px;
  84. 84 border-radius: 20px;
  85. 85 cursor: pointer;
  86. 86 transition: .3s;
  87. 87 box-shadow: 0 3px 6px rgba(0, 0, 0, .5);
  88. 88 opacity: .5;
  89. 89 z-index: 100;
  90. 90 }
  91. 91 .el-icon-caret-top{
  92. 92 color: #fff;
  93. 93 display: block;
  94. 94 line-height: 40px;
  95. 95 text-align: center;
  96. 96 font-size: 18px;
  97. 97 }
  98. 98 p{
  99. 99 display: none;
  100. 100 text-align: center;
  101. 101 color: #fff;
  102. 102 }
  103. 103 .page-up:hover{
  104. 104 opacity: 1;
  105. 105 }
  106. 106 </style>
  107. 107

2、调用“回到顶部”组件

  1. 1 <template>
  2. 2 <div class="content-container-top">
  3. 3 <ScrollTop> </ScrollTop>
  4. 4 </div>
  5. 5 </template>
  6. 6
  7. 7 <script>
  8. 8 import ScrollTop from '../components/public/AppToTop.vue'
  9. 9 export default {
  10. 10 name: "app-list",
  11. 11 components:{
  12. 12 ScrollTop
  13. 13 }
  14. 14
  15. 15 }
  16. 16 </script>

Vue+elementUI 创建“回到顶部”组件的更多相关文章

  1. vue+elementUI项目,父组件向子组件传值,子组件向父组件传值,父子组件互相传值。

    vue+elementUI项目,父组件向子组件传值,子组件向父组件传值,父子组件互相传值. vue 父组件与子组件相互通信 一.父组件给子组件传值 props 实现父组件向子组件传值. 1父组件里: ...

  2. vue回到顶部组件

    html <template> <a href="javascript:;" class="toTop" @click="backT ...

  3. vue中的回到顶部

    <template> <div class="main"> <div class="content">灰色部分是内容部分&l ...

  4. VUE+ElementUI创建项目

    1.官网下载node,安装node.js环境 安装完成后进入cmd,输入node -v和npm -v查看node和npm是否安装成功及对应的版本 2.全局安装vue-cli:cnpm install ...

  5. vue+elementUI 做的递归组件

    废话少说,直接上最新鲜的干货 当然,你得提前安装好bootstrap,router,element-ui,vue-axios 1.上递归组件,此处参考了某位大神的代码,具体不知道是谁,因为到处都有人用 ...

  6. Vue中创建单文件组件 注册组件 以及组件的使用

    <template> <div id="app"> <v-home></v-home> <hr > <br> ...

  7. Vue+element UI实现“回到顶部”按钮组件

    介绍 这是一个可以快速回到页面顶部的组件,当用户浏览到页面底部的时候,通过点击按钮,可快速回到页面顶部. 使用方法 由于该组件是基于element-UI进行二次封装的,所以在使用该组件时请务必安装el ...

  8. vue路由切换时内容组件的滚动条回到顶部

    在使用vue的时候会出现切换路由的时候滚动条保持在原来的位置,要切换路由的时候滚动条回到顶部才有更好的用户体验 1.当页面整体都要滚动到顶部的情况 router.afterEach(() => ...

  9. Vue+ElementUI 导航组件

    创建导航页组件 在components目录下新建一个navigation目录,在Navi目录中新建一个名为Navi.vue的组件.至此我们的目录应该是如下图所示: 然后我们修改main.js文件,修改 ...

随机推荐

  1. 从门外汉到腾讯Android高级研发——一个半路出家菜鸟的艰难逆袭之路

    我是在去年3月份加入腾讯公司,目前是腾讯公司某技术部门里面的一个小负责人,年薪月薪大税后概30K,谈不上多么厉害,但在回想自己半路出家学习编程,从一个销售到现在终于进入中国互联网顶尖公司,还是有些许感 ...

  2. HashMap底层实现-基础

    1.数据结构 1.7 数组+链表,键值对是以Entry内部类的数组存放的.键计算得到哈希值是该数组的下标.又称桶数组当存在哈希冲突时,会通过Entry类内部的成员变量 Entry<k,v> ...

  3. NOIP 模拟 $29\; \rm 最长不下降子序列$

    题解 \(by\;zj\varphi\) 观察这个序列,发现模数很小,所以它的循环节很小. 那么可以直接在循环节上做最长上升子序列,但是循环节中的逆序对会对拼接后的答案造成影响. 没有必要找逆序对个数 ...

  4. MyBatiesPlus+Redis分布式缓存

    一.开启二级缓存 cache-enabled: true # mybatis-plus相关配置 mybatis-plus: # xml扫描,多个目录用逗号或者分号分隔(告诉 Mapper 所对应的 X ...

  5. 解决Git中fatal: refusing to merge unrelated histories

    原文链接: https://blog.csdn.net/wd2014610/article/details/80854807 Git的报错 在使用Git的过程中有时会出现一些问题,那么在解决了每个问题 ...

  6. 如何快速排查发现redis的bigkey?4种方案一次性给到你!

    本篇文章将以redis的bigkey为主题进行技术展开,通过从认识redis的高性能,bigkey的危害.存在原因.4种解决方案,到模拟实战演练的介绍方式,来跟大家一起认识.探讨和学习redis. 先 ...

  7. SpringBoot快速入门(必知必会)

    是什么?能做什么 SpringBoot必知必会 是什么?能做什么 SpringBoot是一个快速开发脚手架 快速创建独立的.生产级的基于Spring的应用程序 SpringBoot必知必会 快速创建应 ...

  8. 二、vue组件化开发(轻松入门vue)

    轻松入门vue系列 Vue组件化开发 五.组件化开发 1. 组件注册 组件命名规范 组件注册注意事项 全局组件注册 局部组件注册 2. Vue调试工具下载 3. 组件间数据交互 父组件向子组件传值 p ...

  9. css - rem和vw

    css - rem和vw 物理像素 物理像素在不同的设备中1px里可以容纳的像素颗粒是不相同的,所以1px这个单位其实也是有N个像素颗粒填充的.同一尺寸屏幕的每个像素点所能容纳的像素颗粒越多显示效果越 ...

  10. 快速创建Spring web项目

    第一步,把包和文件夹建好 第二步.pom文件添加依赖 放到properties标签内 <spring_version>4.1.2.RELEASE</spring_version> ...