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. HTML5(十一)——WebSocket 基础教程

    一.为什么要学 WebSocket? websocket 是 HTML5 提供的一种长链接双向通讯协议,使得客户端和服务器之间的数据交换更简单,允许服务端主动向客户端推送数据,并且客户端与服务端只需连 ...

  2. Google Breakpad · 基础介绍

    Google breakpad是一个跨平台的崩溃转储和分析框架和工具集合. 三个主要组件 ◆ client 以library的形式内置在你的应用中,当崩溃发生时写 minidump文件 ◆ symbo ...

  3. spring学习08(声明式事务)

    11.声明式事务 11.1 回顾事务 事务在项目开发过程非常重要,涉及到数据的一致性的问题,不容马虎! 事务管理是企业级应用程序开发中必备技术,用来确保数据的完整性和一致性. 事务就是把一系列的动作当 ...

  4. docker搭建clickhouse集群

    //需要先搭建zookeeper集群.机器1: sudo docker run -d \ --name clickhouse --ulimit nofile=262144:262144 \ -p 81 ...

  5. NOIP 模拟 $26\; \rm 幻魔皇$

    题解 \(by\;zj\varphi\) 观察可发现一个点向它的子树走能到的白点,黑点数是一个斐波那契数列. 对于白色点对,可以分成两种情况: 两个白点的 \(lca\) 是其中一个白点 两个白点的 ...

  6. 使用msp432搭建的平衡小车(一)

    1.前言 笔者是一名大二学生曾经荒废一年学业,现在不断学习,所以有任何问题都希望讨论提出,你们的支持就是我的动力. 关于硬件搭建的步骤,笔者就不提网上方案太多了,笔者使用编码器电机,驱动采用tb661 ...

  7. linux命令别名

    p.p1 { margin: 0; font: 20px Menlo; color: rgba(0, 0, 0, 1) } span.s1 { font-variant-ligatures: no-c ...

  8. WindowsService开发简单入门

    参考网址: https://www.cnblogs.com/wenlong512/p/7355971.html 一.简介 程序创建在 Windows 会话中,可长时间运行的可执行应用程序.这些服务可以 ...

  9. Nacos集群部署:

    Nacos集群部署: 官网:    https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html 1: 下载 Nacos1.2.0 链接:http ...

  10. springboot项目中进行XSS过滤

    简单介绍 XSS : 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意 ...