使用隐藏元素进行过渡

make a transition with a hidden element

我有一个带有隐藏视频的 html 代码。当我将鼠标悬停在文本上时,视频将可见并开始播放。过渡是快速的。所以我想做一种淡入或滑动效果。但是当我想在我的 css 中添加一条过渡线时,孔代码停止工作。

我在 Internet 上看到您不能转换隐藏元素,但我应该如何更改代码以在视频中产生淡入淡出效果。

非常感谢!

代码:

<div scroll="no" style="overflow: hidden">
<video id="Hvideo" width="700" height="100%" controls hidden muted loop>
    <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>  
<div id="Htext">
    <button id="Htext" onmouseover="PlayH()" onmouseout="PauseH()">HVAC</button>
</div>
<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>

css:

#Htext{
background: none;
border: none;
font-size: 50px;
padding-bottom: 30px;
position: relative;
top: 10px;
left: 30px;
overflow: hidden;

}

#Hvideo{
position: absolute;
top: 0%;
right: -20%;
overflow: hidden;
}

#Hvideo::-webkit-media-controls-enclosure{
display: none;
overflow: hidden;
}

您可以使用此 CSS 并保持 JS 原样:

#Hvideo[hidden] {
  display: block;
  visibility: visible;
  opacity: 0;
}
#Hvideo:not([hidden]) {
  opacity: 1;
}
#Hvideo {
  transition: opacity 0.4s ease-in-out;
}