javascript - 将鼠标悬停在图像上时播放视频并显示文本

标签 javascript css hover overlay mp4

我正在寻找一种方法来实现将鼠标悬停在触发播放视频的图像上。当鼠标不再位于图像上时,图像(海报?)应该再次显示。视频上还应该显示文字。请参阅下面来自 Loop 的示例。他们对他们的案例有这种悬停效果。 我尝试了多种使用 imageoverlay 或海报图像的解决方案,但没有一种能让我从图像平滑过渡到视频。 请参阅下面的代码。

我不知道如何在悬停时获得此“探索”文本的图像/视频顶部添加文本,如 Loop 中的示例:https://www.agentur-loop.com/ (将鼠标悬停在“数字”上以查看效果)。

编辑 1:此处:agentur-loop.com/cases 它们在悬停时从图像到视频的过渡非常平滑,如果我将鼠标悬停在视频上,它会平滑地过渡/淡化回(海报)图像。我的当前状态可以在此处的最底部看到:fredericlouis.com/fredericlouis.com/admin 在此先感谢! –

$(document).ready(function() {
  $('.video2').each(function(i, obj) {
    $(this).on("mouseover", hoverVideo);
    $(this).on("mouseout", hideVideo);
  });
});

function hoverVideo() {
  $(this).find(".overlayImage").hide();
  $(this).find(".thevideo")[0].play();
}

function hideVideo(video) {
  $(this).find(".thevideo")[0].currentTime = 0;
  $(this).find(".thevideo")[0].pause();
  $(this).find(".overlayImage").show();
}
video2 {
  width: 1200px;
}

.overlayImage {
  position: absolute;
}
<div class="video2">
  <img src="images/apple_vr10.png" class="overlayImage" width="600" alt="apple vr" />
  <video class="thevideo" loop muted poster="images/apple_vr10.png" onmouseout="this.pause()">
        <source src="videos/apple_vr.mp4" type="video/mp4">
    </video>
 </div>

最佳答案

  1. 将文字和视频放在一个div中,使用相对和绝对位置,使第一个出现在视频的前面
  2. 使用 CSS :hover 隐藏/显示悬停时的文本
  3. 使用 JS 根据鼠标是否悬停在视频上,根据需要播放/暂停视频

该解决方案采用普通 JS 来帮助非 jQuery 用户,但可以轻松调整以使用 jQuery 减少几行代码。

let div = document.querySelector('div');
let video = document.querySelector('video');

div.onmouseover = () => video.play();
div.onmouseout = () => video.pause();
div {
  width: 100%;
  position: relative;
}
div > p {
  width: 100%;
  position: absolute;
  text-align: center;
  font-weight: bold;
  font-size: 2em;
  color: white;
  transition: all .5s;
}
div:hover > p {
  opacity: 0;
}
div > video {
  width: 100%;
  position: absolute;
}
<div>
  <video
    src="https://interactive-examples.mdn.mozilla.net/media/examples/flower.webm"
    muted
  ></video>
  <p>Hover to play the video!</p>
</div>

关于javascript - 将鼠标悬停在图像上时播放视频并显示文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55477699/

相关文章:

javascript - 从服务器上传并返回多个 HttpPostedFiles

javascript - 如何在另一个图像 rails 的图像标签内添加 src 图像路径

html - 如何在此幻灯片放映中设置默认图像?

javascript - 当用户在内部制作 "mouseon"时代码悬停外部 html 元素?

javascript - 如何对多个 html 表单使用 javascript 函数

javascript - 没有 JSONP 的跨站点 AJAX?

javascript - axios 获取响应未定义

html - IE 7 z-index,在另一个堆栈中重叠 div

javascript - 在我的具体情况下,如何将 3 个盒子并排放置?

CSS:如果选择则没有悬停