Vue+elementUI 创建“回到顶部”组件
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 创建“回到顶部”组件的更多相关文章
- vue+elementUI项目,父组件向子组件传值,子组件向父组件传值,父子组件互相传值。
vue+elementUI项目,父组件向子组件传值,子组件向父组件传值,父子组件互相传值. vue 父组件与子组件相互通信 一.父组件给子组件传值 props 实现父组件向子组件传值. 1父组件里: ...
- vue回到顶部组件
html <template> <a href="javascript:;" class="toTop" @click="backT ...
- vue中的回到顶部
<template> <div class="main"> <div class="content">灰色部分是内容部分&l ...
- VUE+ElementUI创建项目
1.官网下载node,安装node.js环境 安装完成后进入cmd,输入node -v和npm -v查看node和npm是否安装成功及对应的版本 2.全局安装vue-cli:cnpm install ...
- vue+elementUI 做的递归组件
废话少说,直接上最新鲜的干货 当然,你得提前安装好bootstrap,router,element-ui,vue-axios 1.上递归组件,此处参考了某位大神的代码,具体不知道是谁,因为到处都有人用 ...
- Vue中创建单文件组件 注册组件 以及组件的使用
<template> <div id="app"> <v-home></v-home> <hr > <br> ...
- Vue+element UI实现“回到顶部”按钮组件
介绍 这是一个可以快速回到页面顶部的组件,当用户浏览到页面底部的时候,通过点击按钮,可快速回到页面顶部. 使用方法 由于该组件是基于element-UI进行二次封装的,所以在使用该组件时请务必安装el ...
- vue路由切换时内容组件的滚动条回到顶部
在使用vue的时候会出现切换路由的时候滚动条保持在原来的位置,要切换路由的时候滚动条回到顶部才有更好的用户体验 1.当页面整体都要滚动到顶部的情况 router.afterEach(() => ...
- Vue+ElementUI 导航组件
创建导航页组件 在components目录下新建一个navigation目录,在Navi目录中新建一个名为Navi.vue的组件.至此我们的目录应该是如下图所示: 然后我们修改main.js文件,修改 ...
随机推荐
- 从门外汉到腾讯Android高级研发——一个半路出家菜鸟的艰难逆袭之路
我是在去年3月份加入腾讯公司,目前是腾讯公司某技术部门里面的一个小负责人,年薪月薪大税后概30K,谈不上多么厉害,但在回想自己半路出家学习编程,从一个销售到现在终于进入中国互联网顶尖公司,还是有些许感 ...
- HashMap底层实现-基础
1.数据结构 1.7 数组+链表,键值对是以Entry内部类的数组存放的.键计算得到哈希值是该数组的下标.又称桶数组当存在哈希冲突时,会通过Entry类内部的成员变量 Entry<k,v> ...
- NOIP 模拟 $29\; \rm 最长不下降子序列$
题解 \(by\;zj\varphi\) 观察这个序列,发现模数很小,所以它的循环节很小. 那么可以直接在循环节上做最长上升子序列,但是循环节中的逆序对会对拼接后的答案造成影响. 没有必要找逆序对个数 ...
- MyBatiesPlus+Redis分布式缓存
一.开启二级缓存 cache-enabled: true # mybatis-plus相关配置 mybatis-plus: # xml扫描,多个目录用逗号或者分号分隔(告诉 Mapper 所对应的 X ...
- 解决Git中fatal: refusing to merge unrelated histories
原文链接: https://blog.csdn.net/wd2014610/article/details/80854807 Git的报错 在使用Git的过程中有时会出现一些问题,那么在解决了每个问题 ...
- 如何快速排查发现redis的bigkey?4种方案一次性给到你!
本篇文章将以redis的bigkey为主题进行技术展开,通过从认识redis的高性能,bigkey的危害.存在原因.4种解决方案,到模拟实战演练的介绍方式,来跟大家一起认识.探讨和学习redis. 先 ...
- SpringBoot快速入门(必知必会)
是什么?能做什么 SpringBoot必知必会 是什么?能做什么 SpringBoot是一个快速开发脚手架 快速创建独立的.生产级的基于Spring的应用程序 SpringBoot必知必会 快速创建应 ...
- 二、vue组件化开发(轻松入门vue)
轻松入门vue系列 Vue组件化开发 五.组件化开发 1. 组件注册 组件命名规范 组件注册注意事项 全局组件注册 局部组件注册 2. Vue调试工具下载 3. 组件间数据交互 父组件向子组件传值 p ...
- css - rem和vw
css - rem和vw 物理像素 物理像素在不同的设备中1px里可以容纳的像素颗粒是不相同的,所以1px这个单位其实也是有N个像素颗粒填充的.同一尺寸屏幕的每个像素点所能容纳的像素颗粒越多显示效果越 ...
- 快速创建Spring web项目
第一步,把包和文件夹建好 第二步.pom文件添加依赖 放到properties标签内 <spring_version>4.1.2.RELEASE</spring_version> ...