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

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

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

 1 <template>
2 <div class="content-container-top">
3 <ScrollTop> </ScrollTop>
4 </div>
5 </template>
6
7 <script>
8 import ScrollTop from '../components/public/AppToTop.vue'
9 export default {
10 name: "app-list",
11 components:{
12 ScrollTop
13 }
14
15 }
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. tomcat 配置http跳转https

    web.xml增加配置 <security-constraint> <web-resource-collection > <web-resource-name >S ...

  2. VulnHub靶场渗透之:Gigachad

    环境搭建 VulnHub是一个丰富的实战靶场集合,里面有许多有趣的实战靶机. 本次靶机介绍: http://www.vulnhub.com/entry/gigachad-1,657/ 下载靶机ova文 ...

  3. Linux 并发服务器编程(多进程)

    文章目录 说明 注意事项 server.c client.c 运行截图 说明 在Linux中通过流式套接字编程(TCP),实现一个并发服务器的访问回显,适合刚学完Linux套接字编程的朋友进行巩固训练 ...

  4. 题解 v

    传送门 考场上只会爆搜--觉得重复状态其实有很多但不知道怎么记忆化,结果-- 对于类似这样n不算太小但只有二三十,而重复状态极多的题其实也是可以跑状压/记搜的,状态可以开map存 然后就是爆搜,就没什 ...

  5. mongoose报错:DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead

    参考:mongoose报错:DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead mo ...

  6. Mac 证书错误

    在 Mac 操作系统安装 Python 3.6 或以上版本时,可能会遇到证书错误:Error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify ...

  7. TCP三次握手中SYN,ACK,Seq含义

    TCP(Transmission Control Protocol)传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示 ...

  8. Vue2.0 axios 读取本地json文件

    参考:https://www.cnblogs.com/wdxue/p/8868982.html 1.下载插件 npm install axios --save 2.在main.js下引用axios i ...

  9. mfc HackerTools监控键盘按键

    string GetKey(int Key) { string KeyString = ""; //判断符号输入 const int KeyPressMask = 0x800000 ...

  10. C程序设计学习笔记(完结)

    时间:2015-4-16 09:17 不求甚解,每有会意,欣然忘食.学习的过程是痛苦的 第1章    程序设计和C语言     第2章    算法--程序的灵魂   -算法的五个特点          ...