微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

添加了隐藏元素,但现在我的悬停效果不再起作用

如何解决添加了隐藏元素,但现在我的悬停效果不再起作用

我的 javascript 代码有问题,我为文本制作了悬停效果以播放视频。但现在我想在你不悬停文本时隐藏视频。当我添加隐藏元素时,悬停效果不再起作用...

你们知道解决方案吗?

<script type="text/javascript">

var Htext=document.getElementById("Htext");
var Hvideo=document.getElementById("Hvideo");

function PauseH(){
    Hvideo.pause();
}

function PlayH(){
if(Hvideo.paused)
    Hvideo.play();
    
}

if(Hvideo.pause){
    Hvideo.hidden = true;
}else{
    Hvideo.hidden = false;
}
</script>

<div>
<video id="Hvideo" width="320" height="240" preload="auto">
    <source src="URL will be added" type="video/mp4">
</video>
<button id="Htext" onmouSEOver="PlayH()" onmouSEOut="PauseH()">HVAC</button>

</div>

解决方法

您的代码似乎可以正常工作:

https://www.w3schools.com/code/tryit.asp?filename=GMLBBYWJV4I2

<div>

<button id="Htext" onmouseover="PlayH()" onmouseout="PauseH()">HVAC</button>

</div>

<video id="Hvideo" width="320" height="240" controls>
  <source src="https://www.w3schools.com/jsref/movie.mp4" type="video/mp4">
  <source src="https://www.w3schools.com/jsref/movie.ogg" type="video/ogg">
  Your browser does not support the video tag.
</video>

<script>
var Htext=document.getElementById("Htext");
var Hvideo=document.getElementById("Hvideo");

function PauseH(){
    Hvideo.pause();
    Hvideo.hidden = true;
}

function PlayH(){
  if(Hvideo.paused) {
    Hvideo.play();
    Hvideo.hidden = false;
  }    
}

</script>

我确实想知道问题是否归结于在运行 JavaScript 之前需要 HTML 元素存在的事实,如果 JavaScript 在元素出现在页面上之前运行它会失败。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。