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

2023-11-15

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

// 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>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue实现鼠标移入图片播放视频 的相关文章

随机推荐

  • 男子英文名释义

    AARON 希伯来 启发的意思 AARON被描绘为不高但英俊的男人 诚实刻苦具有责任感 是个有效率个性沉静的领导者 ABEL 希伯来 呼吸 的意思 为ABELARD的简写 大部份的人认为ABEL是高大 强壮的运动员 能干 独立 又聪明 有些
  • 32 Consumer消息零丢失方案:手动提交offset + 自动故障转移

    1 消费者 红包系统 丢失消息的问题 前面两章中 阐述了如何确保订单系统发送出去的消息一定会到达MQ中 而且也能确保了如果消息到达了MQ如何确保一定不会丢失 在整个消息的生产消费中 就剩下消费者这一端的问题了 红包系统 消费者 拿到消息后
  • jshint 一些选项(转载)

    内容来自 http www cnblogs com qianduanjingying p 6185793 html 一些变量的作用 http www cnblogs com CloudMu archive 2014 05 28 375753
  • 使用Matlab相机标定库(Camera Calibration Toolbox)问题小记

    使用Matlab相机标定库 Camera Calibration Toolbox 问题小记 Camera Calibration Toolbox的官方网站 http www vision caltech edu bouguetj calib
  • 佩服,主动让自己不舒服的人

    个人特别喜欢金庸的武侠 零度曾也梦想仗剑走天涯 奈何bug太多 最后就没去了 金庸武侠里面的主角有一个特点 主角都是从最底层开始并且开始条件不好 最后成功走向巅峰的 由于反差极大 也特别励志 现实中有没有那种开始条件不好 后来走向巅峰的呢
  • QListWidget 中的元素水平排列

    1 QListWidget 中元素的排列方式设置 m listWidget new QListWidget m listWidget gt insertItem 0 tr TCP 添加元素 m listWidget gt insertIte
  • 【Zblog建站】搭建属于自己的博客网站,并内网穿透实现公网访问

    文章目录 1 前言 2 Z blog网站搭建 2 1 XAMPP环境设置 2 2 Z blog安装 2 3 Z blog网页测试 2 4 Cpolar安装和注册 3 本地网页发布 3 1 Cpolar云端设置 3 2 Cpolar本地设置
  • HttpSession对象

    一 HttpSession描述 HttpSession是当一个用户第一次访问某个网站时自动创建的 通过在HttpServletRequest中调用getSession方法 可以获得用户的HttpSession 二 HttpSession对象
  • Java中的日期时间类详解(Date、DateFormat、Calendar)

    目录 1 Date类 1 1 概述 1 2 Date类构造方法 1 3 Date类的getTime方法 返回毫秒数 2 DateFormat类 2 1 其子类SimpleDateFormat的构造方法 2 2 DateFormat类常用方法
  • 【Unity实用小方法】开启游戏时播放一段动画

    不显示任何视频控件 当点击屏幕发生输入之后会跳过动画的播放 一般游戏中的开场动画使用这种播放方式 Handheld PlayFullScreenMovie test mp4 Color black FullScreenMovieContro
  • python 连续比较_【Python效率】五种Pandas循环方法效率对比

    本专栏招募作者及编辑 感兴趣分享学习R Python数据分析 机器学习知识的可以私信联系 PS 有人提到一个问题很好 如果每次循环都采用比较复杂的操作似乎用向量化很难实现 我的建议是尽可能拆分成向量化操作 如果不行建议用numpy硬写然后用
  • 关于lvm扩容的方式

    一 最常见的lvm扩容 新增磁盘扩容到lvm 步骤 1 创建pv pvcreate dev sdb 2 扩展vg vgextend vgname dev sdb vgdisplay 3 扩展lv lvextend l 100 FREE de
  • IntelliJ Idea 常用12款插件(提高开发效率),附优秀主题插件

    目录 一 插件安装方式 二 常用插件 1 Background Image Plus 2 Mybatis Log Plugin 3 MybatisCodeHelperPro 4 Grep Console 5 CodeGlance 6 Gen
  • Vue之Vant移动端组件库使用方法

    步骤 全局安装 npm i vant S 在mian js中引入 import Vant from vant import vant lib index css Vue use Vant 根据实际情况引入组件
  • 图的遍历——创建图

    以下代码基于王道数据结构 include
  • qt模拟鼠标事件

    模拟鼠标事件 1 模拟鼠标按下事件 2 模拟鼠标松开事件 3 模拟鼠标点击事件 4 模拟鼠标移动事件 1 模拟鼠标按下事件 QPoint p this gt rect center QMouseEvent pressEvent new QM
  • 解决点击页面跳转导致路径叠加,无法显示的问题

    用Vue element ui 开发后台页面菜单的时候 会遇到点击路由能显示 但是在这个基础上再点击下一个页面的时候 不能正常显示 然后看链接 发现她们的path部分叠加在一起了 path ccode component gt import
  • word里Tab制表符查找替换成^p

    按Ctrl H组合键进入 替换 命令对话框 在 查找内容 一栏内输入 t 在 替换为 一栏内输入 p 单击 全部替换 即可
  • AUTOSAR代码示例

    AUTOSAR代码示例是什么 AUTOSAR代码示例是指使用AUTOSAR 汽车开放式软件体系结构 开发汽车电子系统的代码样例 它提供了一种可重复使用的解决方案 可以帮助开发人员快速实现汽车电子系统的功能
  • vue实现鼠标移入图片播放视频

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