我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vant list组件滚动保留滚动条位置

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vant list组件滚动保留滚动条位置

vant list组件滚动保留滚动条位置,需结合keepAlive使用,分享此篇,供大家参考。

1、保存位置的前提是用的keepAlive组件来做缓存,app.vue代码


<template>
  <div id="app">
    <keep-alive>
      <router-view v-if='$route.meta.keepAlive'/>
    </keep-alive>
    <router-view  v-if='!$route.meta.keepAlive'/>
  </div>
</template>

2、在路由文件router.js,给每个路由meta添加scrollTop和keepAlive


 {
      path: '/home',
      name: 'home',
      component: resolve => require(['@/views/home/index.vue'], resolve),
      meta: {
        title: '首页',
        index: 1,
        keepAlive: true,
        scrollTop: 0
      }
    },
    {
      path: '/classify',
      name: 'classify',
      component: resolve => require(['@/views/classify/index.vue'], resolve),
      meta: {
        title: '分类',
        index: 1,
        keepAlive: true,
        scrollTop: 0
      }
    },
    {
      path: '/shopping',
      name: 'shopping',
      component: resolve => require(['@/views/shopping/index.vue'], resolve),
      meta: {
        title: '购物车',
        index: 1,
        keepAlive: true,
        scrollTop: 0
      }
    },
    {
      path: '/detail',
      name: 'detail',
      component: resolve => require(['@/views/detail/index.vue'], resolve),
      meta: {
        title: '详情',
        index: 2,
        // keepAlive: true,
        // scrollTop: 0
      }
    },

3、然后在main.js,记录滚动条的位置


router.beforeEach((to, from, next) => {  
  if (from.meta.keepAlive) {
    const $wrapper = document.querySelector('.app-wrapper'); // 列表的外层容器 注意找到滚动的盒子
    const scrollTop = $wrapper ? $wrapper.scrollTop : 0;
    console.log('scrollTop=', scrollTop)
    from.meta.scrollTop = scrollTop;
  }
  next();
});

4、最后在需要记录保留滚动条位置的地方获取通过activated(这个函数每次进入页面都会执行,只有结合使用keepAlive组件才有效)来获取scrollTop


activated () {
    const scrollTop = this.$route.meta.scrollTop;
    const $wrapper = document.querySelector('.app-wrapper');
    if (scrollTop && $wrapper) {
      $wrapper.scrollTop = scrollTop;
    }
  },

比如缓存了某些页面也不想随之滚动,则把scrollTop置0即可;


activated() {
    const $wrapper = document.querySelector(".app-wrapper");
    $wrapper.scrollTop = 0;
  },

注意,页面滚动的话,其他页面有滚动条的也会随之滚动,可以对其他页面里面处理,或者判断是否从详情页到列表页来判断是否缓存位置,如果不是,则回到顶部,但是注意路由钩子函数this的使用;

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vant list组件滚动保留滚动条位置

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

jQuery如何设置滚动条位置?

jQuery设置滚动条位置jQuery提供多种方法设置窗口、文档和特定元素的垂直和水平滚动条位置。还可以获取滚动条位置,并使用动画效果平滑滚动。此外,jQuery还允许设置其他滚动条属性,例如总高度和当前位置。本文介绍了如何使用jQuery设置滚动条位置,并提供了实用示例。
jQuery如何设置滚动条位置?
2024-04-08

jQuery如何获取滚动条位置?

jQuery获取滚动条位置jQuery提供多种方法获取滚动条位置,包括文档、元素和窗口滚动条。通过$(element).scrollTop()等方法,可以获取元素或文档的纵向滚动条位置。若要获取窗口或文档的横向滚动条位置,可以使用$(window).scrollLeft()。此外,jQuery的scroll事件处理程序允许实时监控滚动条位置,提供动态获取滚动位置的选项。本文还讨论了其他获取滚动条位置的方法,例如window.pageYOffset和documentElement.scrollTop。
jQuery如何获取滚动条位置?
2024-04-08

vant的picker组件设置文字超长滚动方式

这篇文章主要介绍了vant的picker组件设置文字超长滚动方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-12-08

js怎么控制iframe滚动条位置

可以使用以下JS代码来控制iframe滚动条的位置:```javascript// 获取iframe元素var iframe = document.getElementById('your-iframe-id');// 设置iframe滚动
2023-09-21

使用javascript怎么设置滚动条位置

这期内容当中小编将会给大家带来有关使用javascript怎么设置滚动条位置,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。javascript是一种什么语言javascript是一种动态类型、弱类型的语言
2023-06-14

保存ListView上次的滚动条的位置实例(必看)

如下所示:private int select_id = 0; //定义个全局变量@Overridepublic void onStop() {super.onStop();select_id = list_view.getSelected
2023-05-31

jQuery如何监听滚动条位置变化事件?

jQuery监听滚动条位置变化事件jQuery提供了多种方法来监听滚动条位置的变化,包括:scroll()事件处理程序:在滚动条位置发生变化时触发,可附加到window对象或特定元素。scrollTop()和scrollLeft()方法:获取或设置元素的垂直和水平滚动位置。scrollLeft()和scrollLeft()方法:获取或设置元素的水平滚动位置。$(document).ready()事件处理程序:在页面加载并DOM准备就绪后触发,可用于监听滚动条位置变化。这些方法的语法和示例将在文章中进一步详
jQuery如何监听滚动条位置变化事件?
2024-04-02

c#滚动条控件怎么设置

在c#中设置滚动条控件包括以下步骤:创建scrollbar控件。设置minimum、maximum、value和orientation属性以配置控件。响应scroll事件以执行特定操作。在 C# 中设置滚动条控件在 C# 中设置滚动条控件
c#滚动条控件怎么设置
2024-05-12

jQuery如何在元素上设置滚动条的位置?

jQuery设置滚动条位置scrollTop()和scrollLeft()方法:设置或获取垂直/水平滚动条位置。scrollTo()方法:平滑滚动到指定位置(顶部/底部/左侧/右侧)。animate()方法:动画改变滚动条位置,支持垂直/水平滚动。使用选择器可作用于特定元素。注意:InternetExplorer可能不支持scrollTo()方法。这些方法仅修改滚动条位置,不改动内容。建议使用标准HTML/CSS实现滚动行为。
jQuery如何在元素上设置滚动条的位置?
2024-04-02

vue如何控制滚动条滑到某个位置

今天小编给大家分享一下vue如何控制滚动条滑到某个位置的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一.关于web开发的各种
2023-07-04

vue中记录滚动条位置的两种方法

最近用Vue做移动端页面遇到一个问题,需要记住滚动条的位置,所以下面这篇文章主要给大家介绍了关于vue中记录滚动条位置的两种方法,文中给出了详细的实例,需要的朋友可以参考下
2023-01-16

js实现控制整个页面滚动条的位置

这篇文章主要介绍了js实现控制整个页面滚动条的位置,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

编程热搜

目录