第一种:使用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开发 回到顶部操作的更多相关文章

  1. Vue.之.回到顶部

    Vue.之.回到顶部 当页面出现上下滚动条时,页面右下角出现回到顶部功能. 在页面上添加如下DIV(写的CSS内部样式),这个DIV功能:出现滚动条往下滑动,就显示出来,反之隐藏.点击DIV快速回到顶 ...

  2. vue中回到顶部

    1. 回到顶部,使用 scrollIntoView 方法: Element.scrollIntoView方法滚动当前元素,进入浏览器的可见区域 该方法可以接受一个布尔值作为参数.如果为true,表示元 ...

  3. js实现回到顶部操作

    <a href="javascript:;" id="btn" title="回到顶部"></a> 样式: #btn ...

  4. vue 回到顶部的小问题

    今天在用vue项目中,实现回到顶部功能的时候,我写了一个backTop组件,接下来需要通过监听window.scroll事件来控制这个组件显示隐藏 因为可能会有其他的组件会用到这样的逻辑,所以将此功能 ...

  5. vue回到顶部组件

    html <template> <a href="javascript:;" class="toTop" @click="backT ...

  6. Android商城开发系列(五)—— 商城首页回到顶部和搜索框布局实现

    今天我们来开发商城的首页[输入搜索框]布局和点击右下角图片回到顶部的效果 搜索功能在App中很常见,尤其是在商城类的项目当中,一般都会提供很强大的搜索功能,App的搜索布局一般都是在App的顶部,如下 ...

  7. vue路由切换时内容组件的滚动条回到顶部

    在使用vue的时候会出现切换路由的时候滚动条保持在原来的位置,要切换路由的时候滚动条回到顶部才有更好的用户体验 1.当页面整体都要滚动到顶部的情况 router.afterEach(() => ...

  8. vue中的回到顶部

    <template> <div class="main"> <div class="content">灰色部分是内容部分&l ...

  9. vue开发中的"骚操作"

    前言 在与同事协作开发的过程中,见识到了不少"骚操作".因为之前都没用过,所以我愿称之为"高级技巧"! Vue.extend 在交互过程中,有个需求就是点击图标 ...

随机推荐

  1. 【LeetCode】155. 最小栈

    155. 最小栈 知识点:栈:单调 题目描述 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈. push(x) -- 将元素 x 推入栈中. pop() -- 删 ...

  2. Longhorn,Kubernetes 云原生分布式块存储

    Longhorn 是用于 Kubernetes 的轻量级.可靠且功能强大的分布式块存储系统. Longhorn 使用容器(containers)和微服务(microservices)实现分布式块存储. ...

  3. Vue 实现微信提示浏览器转跳功能

    <template> <div class="main"> <div :class="show==true ? 'block':'block ...

  4. SpringCloud-技术专区-从源码层面让你认识Feign工作流程和运作机制

    Feign工作流程源码解析 什么是feign:一款基于注解和动态代理的声明式restful http客户端. 原理 Feign发送请求实现原理 微服务启动类上标记@EnableFeignClients ...

  5. 如何发送一个http请求—apipost

    API界面功能布局 API请求参数 Header 参数 你可以设置或者导入 Header 参数,cookie也在Header进行设置 Query 参数 Query 支持构造URL参数,同时支持 RES ...

  6. MongoDB 数据库创建删除、表(集合) 创建删除、数据增删改查

    使用数据库.创建数据库 use student 如果真的想把这个数据库创建成功,那么必须插入一个数据. 数据库中不能直接插入数据,只能往集合(collections)中插入数据.不需要专门创建集合,只 ...

  7. 2018秋招C/C++面试题总结

    一.C和C++的区别是什么? C是面向过程的语言,C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛.C中函数不能进行重载,C++函数可以重载C++在C的基础上增添类,C是一个结构化语言,它 ...

  8. Nacos 服务注册的原理

    Nacos 服务注册需要具备的能力: 服务提供者把自己的协议地址注册到Nacos server 服务消费者需要从Nacos Server上去查询服务提供者的地址(根据服务名称) Nacos Serve ...

  9. ES6对象扩展——部分新的方法和属性

    1.Object.is方法返回布尔值,和全等于===差不多,除了参数是+0和-0,以及NaN时 //Object.is,返回布尔值,和全等于===差不多,除了+0和-0,以及NaN console.l ...

  10. jmeter实际场景应用之测试上传excel文件

    日常工作上测试的时候,会有一些场景是导入/上传文件.我们系统多是excel文件,这里就用excel文件为例,详述一下此次测试遇到的坑.最终结果是成功的,请看到最后! 1.获取接口的一些参数信息 先按F ...