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>

 

转载于:https://www.cnblogs.com/zhaoxiaoying/p/9803624.html

Vue 3是一种流行的JavaScript框架,用于构建用户界面。它是Vue.js的最新版本,带来了许多新的特性和改进。以下是Vue 3的一些重要特点: 1. Composition API:Vue 3引入了Composition API,它允许开发者通过逻辑组合的方式来组织和重用代码。相比于Vue 2的Options API,Composition API更加灵活和可维护。 2. 更好的性能:Vue 3在性能方面进行了优化,通过使用Proxy代理对象和优化的响应式系统,提高了渲染性能和内存利用率。 3. TypeScript支持:Vue 3对TypeScript提供了更好的支持,包括类型推断、类型检查和编辑器提示等。 4. 更小的包体积:Vue 3通过优化打包方式和移除一些不常用的功能,使得包体积更小,加载速度更快。 UniApp是一个基于Vue.js的跨平台应用开发框架,可以同时开发iOS、Android和Web应用。它提供了一套统一的API和组件库,使得开发者可以使用Vue.js来开发跨平台应用。 UniApp的特点包括: 1. 跨平台开发:UniApp支持一次编写,多端运行,开发者可以使用相同的代码同时构建iOS、Android和Web应用。 2. 统一的API和组件库:UniApp提供了一套统一的API和组件库,开发者可以方便地使用这些API和组件来构建应用。 3. 性能优化:UniApp在性能方面进行了优化,包括渲染性能、加载速度和内存占用等方面的优化。 4. 生态丰富:UniApp生态丰富,有大量的插件和扩展可供开发使用,可以满足各种需求。 回到顶部的功能可以通过以下方式实现: 1. 使用JavaScriptVue.js的scrollTo方法,将页面滚动到顶部位置。 2. 使用CSS的scroll-behavior属性,设置为smooth,可以实现平滑滚动到顶部的效果。 3. 使用第三方库,如vue-scrollto或vue-smooth-scroll等,提供了更多的滚动控制选项和动画效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值