第一种:使用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. lerna 常用命令

    lerna 介绍 lerna 处理机构 固定模式(fixed) 所有包是统一的版本号,每次升级,所有包版本统一更新,不管这个包内容改变与否 具体体现在,lerna 的配置文件 lerna.json 中 ...

  2. ICCV2021 |重新思考人群中的计数和定位:一个纯粹基于点的框架

    ​ 论文:Rethinking Counting and Localization in Crowds:A Purely Point-Based Framework 代码:https://github ...

  3. 【前端 · 面试 】HTTP 总结(十二)—— URL 和 URI

    最近我在做前端面试题总结系列,感兴趣的朋友可以添加关注,欢迎指正.交流. 争取每个知识点能够多总结一些,至少要做到在面试时,针对每个知识点都可以侃起来,不至于哑火. 引言 不知道有多少人是和我一样分不 ...

  4. 熬夜肝了一份 C++/Linux 开发学习路线

    大家好,我是帅地. 之前写过几篇学习路线的文章 前端开发学习路线 Java 后端开发学习路线 一般开发岗主流的就是 Java 后台开发,前端开发以及 C++ 后台开发,现在 Go 开发也是越来越多了, ...

  5. awk-06-常用内置函数

    常用内置函数 示例 1.int 2.sqrt 3.rand rand()并不是每次运行都会产生一个随机数,会一直保持不变 所以需要srand() 函数一起 但是还是有很大的几率会生成一样 4.asor ...

  6. docker 安装prometheus和grafna

    一.拉取镜像 docker pull prom/prometheus 二.配置 sudo mkdir /etc/prometheus/ sudo vim /etc/prometheus/prometh ...

  7. AWD比赛组织指南

    目录 题目构建 平台构建 后端部署流程 前端展示 批量启动 check 题目构建 赛题全部使用docker部署,需准备check脚本和镜像 镜像构建注意事项 1.注意web目录权限 2.注意服务是否自 ...

  8. NOIP 模拟 $29\; \rm 完全背包问题$

    题解 \(by\;zj\varphi\) 一道 \(\rm dp\) 题. 现将所有种类从小到大排序,然后判断,若最小的已经大于了 \(\rm l\),那么直接就是一个裸的完全背包,因为选的总数量有限 ...

  9. JSON.stringify()还可以这么用

    最近做项目的时候遇到一个对象深拷贝的问题,网上看了下发现最为简便的方法是JSON.stringify(),比如你要深拷贝一个对象,可以这么做: var test={ a:"hello&quo ...

  10. js函数聚合

    //掺杂类实现聚合(有的时候,我们需要某个或多个类里的一些方法函数) //将要被聚合的函数 var JSON = { toJsonString: function () { var output = ...