uniapp video组件退出全屏 无限滚动列表页面不在原来点开视频时的位置
时间: 2024-11-12 16:44:19 浏览: 7
uniApp 的 Video 组件支持全屏播放功能,当用户点击视频开始播放并进入全屏模式后,若在视频外部操作退出全屏,通常页面会恢复到用户之前离开视频的状态。然而,在某些情况下,如果退出全屏时页面正在展示一个无限滚动列表等其他内容,可能会因为视口管理的问题导致页面位置改变,不再停留在播放视频时的位置。
解决这个问题的一个常见做法是在视频容器上添加 `catchtouchend` 或者 `tap` 事件监听器,当用户在视频区域外触碰屏幕时,手动将页面滚动回原点。例如:
```javascript
// 使用 Vue 的语法
<template>
<view class="container">
<video @fullscreenchange="handleFullScreenChange" />
<scroll-view ref="scrollView" :scroll-top="scrollTop" />
</view>
</template>
<script>
export default {
data() {
return {
scrollTop: 0,
};
},
methods: {
handleFullScreenChange(fullScreen) {
if (!fullScreen) {
this.$refs.scrollView.scrollTo({ top: this.scrollTop });
}
},
},
};
</script>
```
在这个例子中,`scrollTop` 存储了视频全屏前的滚动位置,退出全屏后通过 `scrollTo` 方法将滚动条设置回这个值,使得列表回到原始打开视频的位置。
阅读全文