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. 【Java】jeesite初始配置以及代码生成工具的使用

    jeesite简单使用 首先去技术服务与支持.版本区别一览表 - JeeSite 4.x找到源码下载的部分 JeeSite 源码下载:https://gitee.com/thinkgem/jeesit ...

  2. SQL 练习8

    查询「李」姓老师的数量 SELECT Tname,COUNT(Tname)数量 from Teacher GROUP BY tname HAVING Tname LIKE '李%'

  3. 转载自-阮一峰-测试框架 Mocha 实例教程

    测试框架 Mocha 实例教程   作者: 阮一峰 日期: 2015年12月 3日 Mocha(发音"摩卡")诞生于2011年,是现在最流行的JavaScript测试框架之一,在浏 ...

  4. WPF material UI 的使用

    网站:https://github.com/vasanthmes/WPF-Dashboard-UI-Material-Design-Concept theme <Application x:Cl ...

  5. vim conf文件配色

    VIM conf文件配色 一.配置文件 1.下载Nginx配置文件的语法文件:nginx.vim wget http://www.vim.org/scripts/download_script.php ...

  6. Linkerd 2.10(Step by Step)—3. 自动轮换控制平面 TLS &Webhook TLS 凭证

    Linkerd 2.10 系列 快速上手 Linkerd v2 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traefik2 ...

  7. 并发控制--context篇

    目录 1. 前言 2 Context 实现原理 2.1 接口定义 2.1 cancelCtx 2.1.1 Done()接口实现 2.1.2 Err()接口实现 2.1.3 cancel()接口实现 2 ...

  8. redis集群访问,重启,关闭,带密码访问集群

    安装ruby后查找如下文件  vi  进去后编辑 此处编写自己的密码,重启后便可带密码访问集群 随便选择一个节点输入如下指令查看集群信息 正常关闭redis命令如下: 重启redis集群再次以相同的命 ...

  9. 使用什么快捷键,关闭、打开、最小化qq聊天窗口

    Alt+F4或者Alt+C关闭聊天窗口.Alt+空格+N 最小化聊天窗口.Alt+H 打开聊天记录,打开聊天窗口没有快捷键,必须点击qq好友图标

  10. APMserv 5.2.6 安装教程

    1.下载APMServ5.2.6.rar压缩包后解压,得到文件APMServ5.1.2.exe,其余两个没什么大用,APMServ解压缩说明.txt可以看一下,里面详细介绍了APMServ的功能和注意 ...