uniapp 对于scroll-view滑动和页面滑动的联动处理

需求

遇到一个需求

解决方案

这个时候可以做一个内页面滑动判断

<!-- scroll-y 做true或者false的判断是否滑动 -->
<view class="u-menu-wrap" style="background-color: #fff;">
					<scroll-view :scroll-y="data.isGo" scroll-with-animation class="u-tab-view menu-scroll-view" :scroll-top="data.scrollTop"
					 :scroll-into-view="data.itemId">
	
					</scroll-view>
				</view>
//通过整个页面的滑动 来处理内页面是否滑动
 onPageScroll((e)=>{
	 // e.scrollTop 表示当前页面滚动的距离 单位px
	 console.log('页面滚动距离:', e.scrollTop);
	 if (e.scrollTop == 204) {
	 	data.isGo = true
	 } else {
	 	data.isGo = false
	 }
 })

效果图

商品列表参考代码 :src/pages/template/mallMenu/index2.vue · jry/uview-plus - 码云 - 开源中国 (gitee.com)

uni-app中,`<scroll-view>` 组件用于创建滚动视图容器,用户可以在其中滑动查看内容。当想要实现在 `<scroll-view>` 中左右两侧的内容联动时,通常需要利用到事件监听、数据绑定以及一些自定义的计算逻辑。 ### 实现原理 1. **事件监听**:首先,在主 `<scroll-view>` 内部设置滚动事件,如 `bindscroll` 或者直接使用 `@scroll`,以便获取滚动位置信息。 ```javascript <scroll-view scroll-x="true" bindscroll="onScroll"> <!-- 内容区域 --> </scroll-view> ``` 其中 `scroll-x="true"` 表示水平滚动。 JavaScript 部分: ```javascript export default { data() { return { scrollLeft: 0 // 初始化滚动位置为0 }; }, methods: { onScroll(e) { this.scrollLeft = e.detail.scrollX; // 获取当前滚动位置 } } }; ``` 2. **数据绑定**:基于获取到的滚动位置,可以将这个值应用于另一个 `<scroll-view>` 的 `scroll-left` 属性上,以此实现联动效果。 ```html <view class="container"> <!-- 左侧联动滚动区 --> <scroll-view scroll-x "true" :scroll-left="scrollLeft"> <!-- 左侧内容 --> </scroll-view> <!-- 右侧内容 --> <scroll-view scroll-y="true"> <!-- 右侧内容 --> </scroll-view> </view> ``` 3. **计算属性/方法**:如果需要更复杂的效果,比如根据滚动的位置调整右侧内容的高度或其他动态属性,可以使用 Vue.js 的计算属性或方法来实现。 ### 相关问题: 1. 在 `uni-app` 中如何控制滚动视图的动画效果? 2. 如何在 `uni-app` 中实现垂直滚动视图的自动跟随? 3. `uni-app` 中如何优化滚动性能避免卡顿现象?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新生代农民工-小王八

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值