disable-progress 可以点击进度条快进
时间: 2023-08-19 10:04:09 浏览: 135
很抱歉,我的回答有误。`disable-progress` 属性是用来禁用视频快进功能的,不会影响进度条的交互。如果您想要禁用进度条的交互,可以设置 `controls` 属性为 `false`,然后通过 JavaScript 控制视频的播放进度。
示例代码如下:
```html
<template>
<video
:src="videoUrl"
:controls="false"
ref="video"
@touchstart="onVideoTouchStart"
@touchmove="onVideoTouchMove"
@touchend="onVideoTouchEnd"
></video>
</template>
<script>
export default {
data() {
return {
videoUrl: "your_video_url",
startX: 0,
endX: 0,
startTime: 0,
endTime: 0
};
},
mounted() {
this.initVideo();
},
methods: {
initVideo() {
this.$refs.video.play();
},
onVideoTouchStart(event) {
this.startX = event.touches[0].pageX;
this.startTime = this.$refs.video.currentTime;
},
onVideoTouchMove(event) {
this.endX = event.touches[0].pageX;
let diffX = this.endX - this.startX;
let diffTime = diffX / 10;
let newTime = this.startTime + diffTime;
if (newTime < 0) {
newTime = 0;
} else if (newTime > this.$refs.video.duration) {
newTime = this.$refs.video.duration;
}
this.$refs.video.currentTime = newTime;
},
onVideoTouchEnd(event) {
this.endX = event.changedTouches[0].pageX;
let diffX = this.endX - this.startX;
let diffTime = diffX / 10;
let newTime = this.startTime + diffTime;
if (newTime < 0) {
newTime = 0;
} else if (newTime > this.$refs.video.duration) {
newTime = this.$refs.video.duration;
}
this.$refs.video.currentTime = newTime;
}
}
};
</script>
```
在上述示例中,我们将 `controls` 属性设置为 `false`,表示隐藏视频的控制条,然后通过监听 `touchstart`、`touchmove` 和 `touchend` 事件来控制视频的播放进度。在 `touchstart` 事件中,我们记录当前的触摸位置和视频播放的时间,然后在 `touchmove` 事件中计算出拖动的距离,并根据距离计算出视频播放的时间。在 `touchend` 事件中,我们将视频的当前播放时间设置为计算出的新时间,以实现视频的快进和后退。
需要注意的是,在实际开发中,您需要将 `your_video_url` 替换为您的视频地址。另外,为了提高用户体验,您可以在拖动过程中显示一个进度条或时间轴,以帮助用户更好地控制视频的播放进度。
阅读全文