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实现鼠标移入图片播放视频 的相关文章

  • VueJS 中数据无法正确显示

    我的 VueJS 代码有一个小问题 在 输出 压缩的 GS1 数字链接 URI 部分中 When there is no result it should have nothing display like this I have remo
  • 如何在Yii框架中向Form添加类?

    我在 Yii 中有一个表单 我想向该表单添加一个类
  • javascript 选择自定义光标 (svg)

    我正在动态地将光标更改为悬停时的本地 svg element on mouseover function this css cursor url svgs pointer svg 9 30 auto 工作正常 但我想选择该 svg 来操纵其
  • 使用 CSS 的响应式图像

    我发现调整图像大小以使其具有响应能力很棘手 我正在开发一个 php 应用程序来自动将网站转换为响应式版本 我有点被图像困住了 我已经成功地为网站上的每个图像添加了一个包装类 并且可以很好地调整图像的大小 我的问题在于自然小于窗口的图像 例如
  • css3按钮背景颜色无限过渡

    有没有办法仅使用 css3 使按钮的背景颜色从灰色渐变为蓝色 然后又回到灰色 一个很好的例子是默认操作按钮是可可 我知道这可以在 javascript 中完成 但我宁愿只使用 css 来完成此操作 您好 我已经通过 CSS3 动画制作了按钮
  • 如何检测一个或多个 JS/CSS 库加载失败(例如 CDN)?

    Premise 我找到了这两个答案 但我不明白如何将它系统地应用于许多库 检测并记录外部 JavaScript 或 CSS 资源加载失败的情况 https stackoverflow com questions 5683824 detect
  • React 设置背景颜色与状态 rgb

    所以我根据数据库的结果生成一个表 在数据库中我保留 rgb 值 例如 75 75 75 现在当我生成列表时 我想使用保存的值设置我的 td 的背景 tbody this state boxes map box i gt tr td box
  • 不知道如何预览我生成的 Nuxt3 应用程序

    我刚刚在静态模式下创建了一个 Nuxt3 但我不想每次都将其推送到 Netlify 进行预览 这是我的nuxt config js 没有改变 import defineNuxtConfig from nuxt export default
  • 如何处理 Nuxt 中导致页面渲染崩溃的 apollo 客户端错误?

    我目前正在维护一个生产 Nuxt js Vue 应用程序 该应用程序集成了 GraphQL Apollo 客户端 该客户端遇到页面渲染错误 为了增加获得回复的机会 我构建了一个简单的代码示例 仅展示我们遇到的问题 谢谢大家 源代码 Clie
  • 使用 css 简单地将对象居中,无需修改

    我想使用 CSS 将对象居中 而不需要任何技巧 这可能吗 如何实现 我已经尝试过了 但是我的 p 标签消失了 centered position fixed top 50 left 50 有多种方法可以使元素居中 但这取决于您的元素是什么以
  • 响应式图像 - srcset 和尺寸属性 - 如何正确使用两者:基于设备像素比和基于视口的选择一起?

    到目前为止 我经常读到这个问题 并且它也发生在我自己的项目中 这里介绍一下我到目前为止所发现的关于 srcset 和 size 属性的内容 关于如何使用有两种不同的可能性srcset 属性 来源 w3c http w3c github io
  • 最大宽度调整以适应文本?

    不是最好的标题 但无论如何 我有一个元素max width和一些文字 如果文本长度超过一行所能容纳的长度 我会得到以下结果 My text here hello everyone 换句话说 它占据了完整的最大宽度 但由于单词向下移动 右侧有
  • Firefox 不会在使用 jQuery AJAX 加载的内容上呈现 CSS 样式

    我有一个网站 允许用户对书籍和文章发表评论 主表单有一个搜索输入 用于查找相关书籍或文章 来源 我使用 jQuery 根据输入的搜索词从外部站点动态加载新源 然后还使用 AJAX 返回列表中的源 我有两个问题 现在 在用户输入四个字符后 j
  • 使用 CSS 或 Javascript 填充动画

    我只是想知道是否可以使用 CSS 或 javascript 创建填充动画 基本上我想创建一个填充动画 如下图所示 http i40 tinypic com eit6ia png http i40 tinypic com eit6ia png
  • 网站的主体和元素固定在 980px 宽度上,不会缩小

    我试图在 Rails 应用程序顶部启动前端 仅 HTML CSS 页面 但在使用 320px 视口时遇到问题 有些元素不会按比例缩小 我不明白为什么 我已经完成了检查元素 为各种元素提供了max width 100 and or width
  • 可以设置标题样式吗? (并且使用CSS或js?)[重复]

    这个问题在这里已经有答案了 我想知道是否可以设计一个title a href title This is a title Hello a 样式问题有两个方面 文本格式 编码 我猜这是可能的 所以在问题中这样做 工具提示样式 你能把它弄大一点
  • CSS3 信封形状

    正如您可能已经猜到的 该图像是邮件信封形状的一部分 如果可能的话 我想使用 CSS3 创建该形状 我已经制作了其他部分 但这个很棘手 该形状需要两侧都有三角形切口和圆角 大概是 border radius bottom left borde
  • 在移动设备上滚动

    这个问题更多的是一个建议研究 我确实希望它对其他人有帮助 并且它不会关闭 因为我不太确定在哪里寻求有关此事的建议 在过去的 6 个月里 我一直在进行移动开发 我有机会处理各种设备上的各种情况和错误 最麻烦的是滚动问题 当涉及到在网站的多个区
  • 使用css bootstrap时如何仅向一列添加右边框?

    我正在尝试使用CSS引导框架 http getbootstrap com css tables在我的项目中 我正在使用带有以下类的表table table bordered table striped 我想删除除第一列之外的所有列的边框 这
  • 在 Nexus 7 2013 上更改方向时 CSS 媒体查询不起作用

    我目前正在我的笔记本电脑 台式电脑和 Nexus 7 2013 上测试 CSS 媒体查询 除了 Nexus 7 之外 它们在台式机和笔记本电脑上都运行良好 当我更改方向时 除非刷新页面 否则样式不会应用 例如 以纵向模式握住设备时 页面正常

随机推荐

  • 男子英文名释义

    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