当前位置: 首页 > news >正文

Uniapp中动态控制scroll-view滚动的方式

在Uniapp 4.45中,动态修改scroll-view的scroll-left属性时无法触发滚动(直接设置scroll-left属性值没问题),这通常是因为数据更新与 DOM 渲染之间的异步特性导致的。知道了原因,但是直接修改scroll-left属性值还是失败,尝试了很多方案,最后结合Vue v-if指令成功。

完整代码:

<template><view class="container"><!-- 横向滚动容器 --><scroll-view scroll-x :scroll-left="scrollLeft" :scroll-with-animation="true" class="scroll-box" @scroll="handleScroll"v-if="scrollViewVisible"><view v-for="item in itemList" :key="item.id" class="scroll-item">元素 {{ item.id }}</view></scroll-view><!-- 控制按钮 --><button @click="scrollToLeft">滚动到最左侧</button></view>
</template><script setup>import {ref,nextTick} from 'vue';// 响应式数据let scrollViewVisible = ref(true);const scrollLeft = ref(0); // 控制横向滚动位置const itemList = ref(Array.from({length: 20}, (_, i) => ({id: i + 1})));// 滚动事件监听const handleScroll = (e) => {console.log('当前横向滚动位置:', e.detail.scrollLeft);};// 滚动到最左侧方法const scrollToLeft = () => {scrollViewVisible.value = false;nextTick(() => {scrollViewVisible.value = true;scrollLeft.value = 0; // 将滚动位置重置为0(最左侧)})};
</script><style scoped>/* 容器样式 */.container {padding: 20rpx;}/* 关键:必须设置固定宽度且允许横向滚动 */.scroll-box {width: 100%;height: 200rpx;white-space: nowrap;/* 禁止换行 */border: 1px solid #eee;}/* 横向排列的子元素 */.scroll-item {display: inline-block;width: 150rpx;height: 180rpx;line-height: 180rpx;text-align: center;background-color: #f0f0f0;margin-right: 20rpx;}
</style>

相关文章:

  • 耗时十分钟,做了一个 uniapp 灵感泡泡机
  • Linux笔记---内核态与用户态
  • uniapp运行到微信开发者工具报错“更改appid失败touristappidError:tourist appid”
  • Python对JSON数据操作
  • vscode怎么关闭自动定位文件
  • 计算机底层的多级缓存以及缓存带来的数据覆盖问题
  • 包装类(1)
  • 一文详解红黑树
  • 基于口令凭据的横向移动:技术解析与实战
  • 轻量级离线版二维码工具的技术分析与开发指南
  • 初识 Redis
  • 力扣每日一题5-18
  • Cursor 模型深度分析:区别、优缺点及适用场景
  • 电子电路:什么是偏置电路?
  • Baklib知识中台架构设计与智能服务实践
  • wpf DataGrid 行选择事件
  • Redis 学习笔记 5:分布式锁
  • vulfocus漏洞学习——redis 未授权访问 (CNVD-2015-07557)
  • RabbitMQ-高级
  • 信息化的编程未来发展
  • 文化破冰,土耳其亚美尼亚合拍摄影大师阿拉·古勒传记片
  • 中国戏剧梅花奖终评结果公示,蓝天、朱洁静等15名演员入选
  • 美国考虑让移民上真人秀竞逐公民权,制片人称非现实版《饥饿游戏》
  • 上海公办小学验证今起开始,下周一和周二分区进行民办摇号
  • 价格周报|本周猪价继续下探,机构预计今年猪价中枢有支撑
  • 金融月评|尽早增强政策力度、调整施策点