[![Enter Image Description Here][1]][1]我正在使用WordPress和Elementor,我想要的效果是,当用户悬停在图像上时,视频开始在图像区域内静音播放,当鼠标悬停在图像上时,视频停止播放,当我们点击图像时,视频可以全屏播放.如何用Java编写代码?我试着问Chat GPT,但它不起作用:

<script>
var myVideo = document.getElementById("myVideo");
var myImage = document.getElementById("hoverimage");
var container = document.querySelector(".image-video-container");

container.addEventListener("mouseover", function() {
  myVideo.play();
});

container.addEventListener("mouseout", function() {
  myVideo.pause();
});
</script>

但上面的编码不起作用

在@피케和@Madan Bhandari的帮助下,我做到了.代码如下:


<div id="image-video-container" style="

position: relative;

height: 300px;

width: 400px;

overflow: hidden;

">

<img

id="hoverimage"

style="

position: relative;

height: 300px;

width: 400px;

overflow: hidden;

"

src="https://www.deliverystone.com/wp-content/uploads/2023/03/IMG_20230222_145146_1.jpg"

/>

<video style="

position: relative;

display: none;

object-fit: cover;

height: 100%;

width: 100%;

"

id="myVideo" loop="" muted="">

<source

src="https://www.deliverystone.com/wp-content/uploads/2022/11/Aloha-Heja-He-BGM.mp4"

type="video/mp4"

/>

</video>

</div>

<script>

var myVideo = document.getElementById("myVideo");

var myImage = document.getElementById("hoverimage");

var container = document.getElementById("image-video-container");

container.addEventListener("click", (event) => {

if (container.requestFullscreen){ container.requestFullscreen();

myVideo.muted = false;}

else if (container.webkitRequestFullscreen){

container.webkitRequestFullscreen();

myVideo.muted = false;}

else if (container.msRequestFullScreen){ container.msRequestFullScreen();

myVideo.muted = false; }

});

container.addEventListener("mouseover", function () {

if (!document.fullscreenElement) {

myVideo.muted = true;

}

myImage.style.display = "none";

myVideo.style.display = "block";

myVideo.currentTime = 0;

myVideo.play();

});

container.addEventListener("mouseout", function () {

myVideo.pause();

myImage.style.display = "block";

myVideo.style.display = "none";

});

</script>

推荐答案

试试这种方法

<script>
  var myVideo = document.getElementById("myVideo");
  var myImage = document.getElementById("hoverimage");
  var container = document.getElementById("image-video-container");

  container.addEventListener("mouseover", function () {
    myImage.style.display = "none";
    myVideo.style.display = "block";
    myVideo.currentTime = 0;
    myVideo.play();
  });

  container.addEventListener("mouseout", function () {
    myVideo.pause();
    myImage.style.display = "block";
    myVideo.style.display = "none";
  });

  // this makes video full screen and play when clicked on parent container
  container.addEventListener("click", (event) => {
    if (container.requestFullscreen) 
      container.requestFullscreen();
    else if (container.webkitRequestFullscreen)
      container.webkitRequestFullscreen();
    else if (container.msRequestFullScreen) 
      container.msRequestFullScreen();
    myVideo.muted = false;
  });
</script>

基本上,当父div设置为mouseover时,隐藏图像并显示视频;当设置为mouseout时,隐藏视频并再次显示图像.

这是一张working codesandbox example美元的钞票

Javascript相关问答推荐

fetch在本地设置相同来源的cookie,但部署时相同的代码不会设置cookie

如何使用Echart 5.5.0创建箱形图

对象和数字减法会抵消浏览器js中的数字

有什么(最佳)方法可以从模块中获取脚本模块的多姆元素吗?

如何最好地从TypScript中的enum获取值

Msgraph用户邀请自定义邮箱模板

如何从调整大小/zoom 的SVG路径定义新的d属性?""

CheckBox作为Vue3中的一个组件

我在我的Java代码中遇到了问题,代码的一部分看不到先前定义的对象

为什么我的导航条打开状态没有在窗口addeventlistener(Reaction Js)中更新?

在浏览器中触发插入事件时检索编码值的能力

如何将未排序的元素追加到数组的末尾?

未加载css colored颜色 ,无法将div设置为可见和不可见

VSCode中出现随机行

在JS中动态创建对象,并将其追加到HTML表中

将对象推送到数组会导致复制

如何使用基于promise (非事件emits 器)的方法来传输数据?

在D3条形图中对具有相同X值的多条记录进行分组

无法检索与Puppeteer的蒸汽游戏的Bundle 包价格

将字符串解释为数字;将其重新编码为另一个基数