【问题标题】:How to play video on hover (in 25% width increments)如何在悬停时播放视频(以 25% 的宽度增量)
【发布时间】:2023-01-13 08:14:02
【问题描述】:

我最近发现了这个问题:How to hide video on div hover?

它完美地展示了我现在对网站的需求。

My question is,

这对 4 个视频也有可能吗,还是正在拉伸它? 我需要每个季度的视频来显示不同的 (short) 视频。

不幸的是,我仍然是 HTML 和 CSS 的初学者,所以我希望有人能帮助我解决这个问题

原始线程的答案中的代码发布在下面。

$('.video_wrapper .video_hover').hover(function() {
  $('.video_wrapper').addClass('isHover');
}, function() {
  $('.video_wrapper').removeClass('isHover');
});
.video_wrapper {
  overflow: hidden;
  position: relative;
}

.video_wrapper video {
  height: auto;
  width: 100vw;
}

.video_wrapper .eat_video {
  left: 0;
  opacity: 0;
  position: absolute;
  top: 0;
}

.video_wrapper .video_hover {
  bottom: 0;
  cursor: pointer;
  position: absolute;
  right: 0;
  top: 0;
  width: 50%;
  z-index: 1;
}

.video_wrapper .live_video,
.video_wrapper .eat_video {
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

.video_wrapper.isHover .live_video {
  opacity: 0;
}

.video_wrapper.isHover .eat_video {
  opacity: 1;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class=video_wrapper>
  <div class="live_video">
    <video muted class="video" autoplay="autoplay" loop="loop" preload="auto">
        <source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4" >
     </video>
  </div>
  <div class="eat_video">
    <video muted class="video" autoplay="autoplay" loop="loop" preload="auto">
        <source src="https://cdn.plyr.io/static/demo/View_From_A_Blue_Moon_Trailer-720p.mp4" type="video/mp4" >
     </video>
  </div>
  <div class="video_hover"></div>
</div>

【问题讨论】:

    标签: html css video


    【解决方案1】:

    欢迎来到 Stackoverflow Jobs,您可以使用鼠标进入和离开事件来实现这一点。

    const video = document.getElementById('myvideo');
    
    video.onmouseenter = function(){
      if(video.paused){
        video.play();
      }
    }
    
    video.onmouseleave = function(){
      if(!video.paused){
        video.pause();
      }
    }
    .video_wrapper{
      overflow: hidden;
      position: relative;
    }
    
    .video_wrapper video{
      height: auto;
      display:block;
      margin:auto;
    }
    
    .video_wrapper .eat_video{
      left: 0;
      opacity: 0;
      position: absolute;
      top: 0;
    }
    
    .video_wrapper .video_hover{
      bottom: 0;
      cursor: pointer;
      position: absolute;
      right: 0;
      top: 0;
      width: 50%;
      z-index: 1;
    }
    
    .video_wrapper .live_video,
    .video_wrapper .eat_video{
      -webkit-transition: all 0.3s ease-in-out;
         -moz-transition: all 0.3s ease-in-out;
           -o-transition: all 0.3s ease-in-out;
              transition: all 0.3s ease-in-out;    
    }
    
    #myvideo:hover{
      cursor:pointer;
      transform:scale(1.25);
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <div class=video_wrapper>
      <div class="live_video">
         <video loop muted class="video" id = 'myvideo' preload="auto">
            <source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4" >
         </video>
      </div>     
    </div>

    【讨论】:

    • 您好,感谢您的欢迎!我不认为我解释得很好。当我将鼠标放在视频宽度的 50% 以上时,我在问题开头链接到的问题的 OP 有另一个视频隐藏了原始视频,因此将鼠标放在视频的左侧会播放一个视频,并将鼠标悬停在右侧将播放另一个。现在我希望这也有可能以 25% 而不是 50% 的增量增加。因此,例如 - 从左到右:第一季度 (0 - 25%) 显示一个视频,第二季度 (25 - 50) % from left) 另一个,等等
    猜你喜欢
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    • 2018-10-01
    相关资源
    最近更新 更多