uni-app 有没有视频轮播图可以点击预览 在app端可以正常使用

发布于 1周前 作者 nodeper 来自 Uni-App

uni-app 有没有视频轮播图可以点击预览 在app端可以正常使用

5 回复

主要是视频层级问题吧?试试看这个呢-https://ext.dcloud.net.cn/plugin?id=11304


可以试试这个https://ext.dcloud.net.cn/plugin?id=11920

写一个遮罩层,把视频显示在遮罩层就可以了

在uni-app中,你可以实现视频轮播图,并且点击预览视频的功能。在App端,这通常是通过使用<swiper>组件和<video>组件来实现的。以下是一个简单的代码示例,展示了如何在uni-app中实现这一功能。

首先,确保你的项目中已经引入了uni-app的基本结构和样式。

1. 页面布局(template部分)

<template>
  <view class="container">
    <swiper
      class="swiper-container"
      indicator-dots="true"
      autoplay="{{false}}"
      interval="3000"
      duration="500"
      @change="swiperChange"
    >
      <swiper-item v-for="(video, index) in videos" :key="index">
        <view class="swiper-item">
          <video
            class="video-player"
            :src="video.src"
            controls
            @click="previewVideo(video.src)"
          ></video>
        </view>
      </swiper-item>
    </swiper>
    
    <!-- 视频预览页面(模态框) -->
    <view class="modal" v-if="isModalVisible">
      <view class="modal-content">
        <video
          class="modal-video-player"
          :src="currentVideoSrc"
          controls
          @click.stop
        ></video>
      </view>
      <view class="modal-mask" @click="closeModal"></view>
    </view>
  </view>
</template>

2. 样式(style部分)

<style scoped>
.container {
  position: relative;
}
.swiper-container {
  width: 100%;
  height: 300px;
}
.swiper-item {
  display: flex;
  justify-content: center;
  align-items: center;
}
.video-player {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
}
.modal-content {
  position: relative;
  z-index: 1;
}
.modal-video-player {
  width: 80%;
  height: 400px;
  object-fit: cover;
}
.modal-mask {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
}
</style>

3. 逻辑(script部分)

<script>
export default {
  data() {
    return {
      videos: [
        { src: 'https://example.com/video1.mp4' },
        { src: 'https://example.com/video2.mp4' },
        // 更多视频...
      ],
      isModalVisible: false,
      currentVideoSrc: ''
    };
  },
  methods: {
    previewVideo(src) {
      this.currentVideoSrc = src;
      this.isModalVisible = true;
    },
    closeModal() {
      this.isModalVisible = false;
    },
    swiperChange(e) {}
  }
};
</script>

这段代码展示了如何在uni-app中实现一个视频轮播图,并在点击视频时弹出一个模态框进行预览。注意,这里的视频链接是示例链接,你需要替换为你自己的视频链接。

回到顶部