vue开发 回到顶部操作
第一种:使用vue-router
history 模式下,用scrollBehavior 方法实现。
1 export default new Router({
2 mode: 'history',
3 routes: routeArray,
4 scrollBehavior (to, from, savedPosition) {
5 return { x: 0, y: 0 }
6 }
7 });
第二种:滚动条在非body上
示例:
1 <template>
2 <!--.wrap-box元素固定高度,内容溢出时,该元素纵向滚动-->
3 <div class="wrap-box" ref="scollElement">
4 <!--.box元素超出父元素.wrap-box高度时,页面会出现滚动条(滚动元素为.wrap-box)-->
5 <div class="box">
6 <!--内容区(切换不同模块)-->
7 <router-view></router-view>
8 </div>
9 </div>
10 </template>
11
12 <script>
13 export default{
14 name:'warp-box',
15 updated () { // 切换不同模块时触发
16 this.$nextTick(()=>{
17 if(this.$refs.scollElement){ // 滚动元素跳转到顶部
18 this.$refs.scollElement.scrollTop = 0;
19 }
20 })
21 }
22 }
23 </script>
24
25 <style>
26 .wrap-box{
27 height: 200px;
28 overflow-y: scroll;
29 }
30 </style>
第三种:基于第二种
在模块化开发中,子模块存在翻页按钮,当页码切换时回到顶部。(此时的滚动元素在祖先模块中)
1 <template>
2 <div class="item-one" ref="itemOne">
3 <div class="list-box">
4
5 </div>
6 <div class="page-box">
7 <el-pagination
8 @current-change="handleCurrentChange"
9 :current-page="currentPage"
10 :page-size="pageSize"
11 layout="total, sizes, prev, pager, next, jumper"
12 :total="total">
13 </el-pagination>
14 </div>
15 </div>
16 </template>
17
18 <script>
19 export default {
20 name:'item-one',
21 data(){
22 return{
23 total:0,
24 tableData:[],
25 pageSize:20,
26 currentPage:1,
27 }
28 },
29 methods:{
30 initData(){//初始化数据
31 // 初始化数据 total、tableData、pageSize、currentPage等
32 },
33 handleCurrentChange(currentPage){ // currentPage 改变时会触发
34 this.currentPage = currentPage;
35 this.initData();
36 /*
37 1、当前模块为子模块,当前模块中内容溢出时存在滚动条,滚动条在祖先模块中。
38 2、当进行翻页时,路由没有变化,无法使用路由跳转滚动条回到顶部的设置,
39 并且滚动条并不在body上。
40 3、解决方法:在子模块中找到祖先模块中的滚动元素。(使用$refs的属性offsetParent寻找滚动元素)
41 4、this.$el为当前组件的挂载元素(这里可以等同于this.$refs.itemOne)
42 */
43 // console.log(this.$el.offsetParent.offsetParent,'滚动元素');
44 this.$nextTick(()=>{
45 this.$el.offsetParent.scrollTop = 0;
46 //this.$el.offsetParent 仅限于当前示例模块的祖先模块基于方法二(一层模块嵌套)
47 //祖先模块的层次将决定offsetParent的获取,使用时应在控制台打印出,确认后使用
48 });
49 },
50 }
51 }
52 </script>
53
54 <style>
55 </style>
vue开发 回到顶部操作的更多相关文章
- Vue.之.回到顶部
Vue.之.回到顶部 当页面出现上下滚动条时,页面右下角出现回到顶部功能. 在页面上添加如下DIV(写的CSS内部样式),这个DIV功能:出现滚动条往下滑动,就显示出来,反之隐藏.点击DIV快速回到顶 ...
- vue中回到顶部
1. 回到顶部,使用 scrollIntoView 方法: Element.scrollIntoView方法滚动当前元素,进入浏览器的可见区域 该方法可以接受一个布尔值作为参数.如果为true,表示元 ...
- js实现回到顶部操作
<a href="javascript:;" id="btn" title="回到顶部"></a> 样式: #btn ...
- vue 回到顶部的小问题
今天在用vue项目中,实现回到顶部功能的时候,我写了一个backTop组件,接下来需要通过监听window.scroll事件来控制这个组件显示隐藏 因为可能会有其他的组件会用到这样的逻辑,所以将此功能 ...
- vue回到顶部组件
html <template> <a href="javascript:;" class="toTop" @click="backT ...
- Android商城开发系列(五)—— 商城首页回到顶部和搜索框布局实现
今天我们来开发商城的首页[输入搜索框]布局和点击右下角图片回到顶部的效果 搜索功能在App中很常见,尤其是在商城类的项目当中,一般都会提供很强大的搜索功能,App的搜索布局一般都是在App的顶部,如下 ...
- vue路由切换时内容组件的滚动条回到顶部
在使用vue的时候会出现切换路由的时候滚动条保持在原来的位置,要切换路由的时候滚动条回到顶部才有更好的用户体验 1.当页面整体都要滚动到顶部的情况 router.afterEach(() => ...
- vue中的回到顶部
<template> <div class="main"> <div class="content">灰色部分是内容部分&l ...
- vue开发中的"骚操作"
前言 在与同事协作开发的过程中,见识到了不少"骚操作".因为之前都没用过,所以我愿称之为"高级技巧"! Vue.extend 在交互过程中,有个需求就是点击图标 ...
随机推荐
- NodeJS 中的事件循环,读了这篇就全懂了
事件循环是 NodeJS 处理非阻塞 I/O 操作的和核心机制.NodeJS 的事件循环脱胎于 libuv 的事件循环,因此,要搞清楚 NodeJS 的事件循环,还需要先了解 libuv 的事件循环是 ...
- J-Link cmd的使用
01.WHY 为什么要使用到J-LinkCommander呢???大部分情况下,我们使用J-link都是在IDE中debug使用的,出现问题,直接debug复现然后解决.这是最常见的开发方式. 但是 ...
- 【笔记】偏差方差权衡 Bias Variance Trade off
偏差方差权衡 Bias Variance Trade off 什么叫偏差,什么叫方差 根据下图来说 偏差可以看作为左下角的图片,意思就是目标为红点,但是没有一个命中,所有的点都偏离了 方差可以看作为右 ...
- 【笔记】KNN之分类准确度
分类准确度 分类准确度 以sklearn中的手写数字datasets.load_digits为例,其是8*8的图形,具有64个特征值,类别由0到9 我们挑选出666这个图形,将其可视化 X = dig ...
- kubernetes中headless类型的service
目录 初识headless类型的service 开始研究headless类型的service headless类型的service之我的理解 初识headless类型的service 第一次使用ran ...
- 【原创】oracle提权执行命令工具oracleShell v0.1
帮一个兄弟渗透的过程中在内网搜集到了不少oracle连接密码,oracle这么一款强大的数据库,找了一圈发现没有一个方便的工具可以直接通过用户名密码来提权的.想起来自己之前写过一个oracle的连接工 ...
- S3C2440—7.存储控制器访问外设
文章目录 一.内存接口的概念 二.存储控制器(内存控制器) 2.1 什么是存储控制器? 2.2 S3C2440存储控制器介绍 2.3 存储控制器如何处理不同位宽的外设 2.4 怎么确定芯片的访问地址? ...
- Django ORM记录的增删改查结合web端
模版语法分配变量 在views.py文件中定义一个视图函数show_data: def show_data(request): # 定义一个字典 并将它展示在前端HTML文件 user_dic = { ...
- Linux搭建SQL server服务器
我们知道在Linux下安装服务有很多方式,最为简单的也就是yum安装,但是很多服务通过yum是无法安装的,如果想使用yum安装,需要指定yum安装仓库,我们今天需要安装MSQL Server,所以需要 ...
- asp.net core 搭建WebAPI微服务-----cosnul服务
参考网址:https://blog.csdn.net/weixin_42084199/article/details/108643555 在此之前需要准备的是: vs2019,以往版本不支持dotne ...