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. 深入理解Https如何保证通信安全

    作为一名ABC搬运工,我相信很多人都知道Https,也都知道它是用来保证通信安全的,但是如果你没有深入了解过Https,可能并不知道它是如何保证通信安全的.我也是借着这次机会,和大家分享下我深入了解的 ...

  2. React Class组件生命周期

    一.react组件的两种定义方式 1.函数组件,简单的函数组件像下面这样,接收Props,渲染DOM,而不关注其他逻辑 function Welcome(props) { return <h1& ...

  3. 百度地图API开发的快速使用和大量坐标点操作【点聚合,海量点,mapv】

    快速上手 注意:本篇文章代码是基于 百度地图 JavaScript API v3.0 的条件下编写,GL版本可能稍有变化. 地图嘛,很重要的一部分就是坐标经纬度了: 经度: 英文 longitude ...

  4. 关于修改.net core webapi中null默认返回的状态码。

    在asp .net core webapi中,http请求的响应数据如果是null的话,我们知道状态码会返回204,即NoContent,为什么会出现这种情况呢?   因为在返回响应数据的时候,nul ...

  5. MyBatis学习02(配置解析)

    配置解析 核心配置文件 mybatis-config.xml 系统核心配置文件 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息. 能配置的内容如下: configur ...

  6. Longhorn 企业级云原生容器存储解决方案-部署篇

    内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生分布式块存储解决方案设计架构和概念 安装 Longhorn 可以通过多种方式安装 ...

  7. Linux部署Redis服务器

    一,Redis介绍 Redis如今已经成为Web开发社区最火热的内存数据库之一,随着Web2.0的快速发展,再加上半结构数据比重加大,网站对高效性能的需求也越来越多. 而且大型网站一般都有几百台或者更 ...

  8. 题解 b

    传送门 考场上只会暴力 \(n^4\) DP,部分分还写炸了 但其实这个DP可以前缀和优化到 \(n^3\) ,我觉得没有这档部分分就没写 但其实是有这一档的,我没有看出来-- 正解想不到 如果我们已 ...

  9. com.github.ulisesbocchio:jasypt-spring-boot-starter:2.0.0引用了sping cloud Finchley.M8版本,一直报错说不能从阿里云下载

    解决方法: 1.找到idea或者eclipase中maven插件引向得settings.xml文件 2.修改文件中<mirror/>标签(配置仓库镜像用得)中<mirrorOf/&g ...

  10. WPF 中的形状和基本绘图概述

    本主题概述如何使用 Shape 对象绘图. Shape 是一种允许您在屏幕中绘制形状的 UIElement 类型. 由于它们是 UI 元素,因此 Shape 对象可以在 Panel 元素和大多数控件中 ...