vue实现鼠标移入图片播放视频

 // 我已经写成组件,直接复制粘贴引用即可 

参考地址:my-web

// imgOrVideo.vue

<template>
  <div class="video-container">
    <div
      class="video-wrapper"
      ref="videoWrapper"
      @mouseenter="handleMouseEnter"
      @mouseout="handleEnded"
    >
      <video
        class="video"
        id="videoComp"
        :src="videoUrl"
        ref="video"
        autoplay
        muted
        v-if="showVideo && videoOrGif === 'video'"
        loop
      ></video>

      <img
        class="poster"
        ref="gif"
        :src="gifUrl"
        v-if="showVideo && videoOrGif === 'gif'"
      />

      <img class="poster" ref="image" :src="imgUrl" v-if="!showVideo" />
    </div>
  </div>
</template>

<script>
export default {
  props: {
    videoUrl: {
      type: String,
      default: require("../../../public/img/imgOrVideo/doodles.mp4"),
    },
    imgUrl: {
      type: String,
      default: require("../../../public/img/imgOrVideo/blueBoy.jpeg"),
    },
    gifUrl: {
      type: String,
      default: require("../../../public/img/imgOrVideo/doodles.gif"),
    },
    videoOrGif: {
      type: String,
      default: "video",
    },
  },
  data() {
    return {
      showVideo: false,
    };
  },
  methods: {
    handleMouseEnter() {
      this.showVideo = true;
    },
    handleEnded() {
      this.showVideo = false;
    },
  },
};
</script>

<style scoped>
.video-container {
  position: relative;
  width: 100%;
  height: 100vh;
  background-color: #eee;
  overflow: hidden;
}

.video-wrapper {
  position: absolute;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.video {
  width: 100%;
}

.poster {
  width: 100%;
  cursor: pointer;
}
</style>

// 使用

<template>
  <div>
    <imgOrVideo ref="imgOrVideo" videoOrGif="gif" />
  </div>
</template>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值