javascript - 当屏幕太小时用图像替换视频

标签 javascript html css video mobile

我在一个网站上工作,并为它的移动版本而苦苦挣扎。我的问题是,当屏幕小于 600px 时,我希望视频消失,而不是视频,它应该显示具有相同宽度和高度的图片。这是我的视频代码。

    <div id="video" class="view hm-white-light jarallax"  data-jarallax='{"speed": 0.1}' data-jarallax-video="https://www.youtube.com/embed/watch?v=1Cpj3GdEG1s?start=[60]&end=[180]">
   <div class="full-bg-img">
      <div class="container flex-center">
         <div class="row">
            <div class="col-md-12 wow fadeIn">
               <div class="text-center">
                  <h1 class="Zedextitel" data-wow-delay="0.3s" align="center" style="font-size:100pt; color:white;">TEST</h1>
                  <h5 class="Videotitel" data-wow-delay="0.4s" style="font-size:30pt; color:white;">TEST</h5>
               </div>
            </div>
         </div>
      </div>
   </div>
</div>

我尝试了许多使用 CSS 的解决方案,例如:

    @media (max-width: 767px)
   {
    #video
      {
        display:none !important;
      }
}

但此解决方案的问题在于视频完全消失,没有任何背景。即使我添加:

background: url(/pictures/test.jpg)no-repeat center top;

视频所在的地方什么也没有出现。这真的让我很困扰,我不知道我可以尝试什么。也许你们中的一些人可以帮助我?我想也许使用 javascript 的东西会有所帮助,但我从未学过它,所以我不知道从哪里开始使用 JS。

最佳答案

问题是您的图像容器在您的视频容器内,所以当您将它设置为无时,所有它都会被隐藏,因此请将两个容器分开。将图像从您的视频容器中取出,因为当视口(viewport)大小小于 767 像素时您将隐藏整个容器。最初,将 full-bg-img 的 display 设置为 none,当调整视口(viewport)大小时,使用媒体查询将其显示为 block ,如图所示。

.full-bg-img {
  display: none;
  background: url(/pictures/test.jpg)no-repeat center top;
}

@media (max-width: 767px) {
  #video {
    display: none !important;
  }
  .full-bg-img {
    display: block;
  }
}
<div id="video" class="view hm-white-light jarallax" data-jarallax='{"speed": 0.1}' data-jarallax-video="https://www.youtube.com/embed/watch?v=1Cpj3GdEG1s?start=[60]&end=[180]">
</div>
<div class="full-bg-img">
  <div class="container flex-center">
    <div class="row">
      <div class="col-md-12 wow fadeIn">
        <div class="text-center">
          <h1 class="Zedextitel" data-wow-delay="0.3s" align="center" style="font-size:100pt; color:white;">TEST</h1>
          <h5 class="Videotitel" data-wow-delay="0.4s" style="font-size:30pt; color:white;">TEST</h5>
        </div>
      </div>
    </div>
  </div>
</div>

这是一个向您展示如何操作的示例:

#full-bg {
  display: none;
}
#video video{
    width:100%;
}
@media (max-width: 767px) {
  #video {
    display: none;
  }
  #full-bg {
    display: block;
  }
}
<div id="video">
  <video width="400" controls>
  <source src="http://techslides.com/demos/sample-videos/small.mp4" type="video/mp4">
  Your browser does not support HTML5 video.
</video>
</div>

<div id="full-bg">
  <img src="https://image.freepik.com/free-psd/abstract-background-design_1297-87.jpg">
</div>

关于javascript - 当屏幕太小时用图像替换视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47770658/

相关文章:

javascript - 没有ul的li怎么算?

javascript - Bootstrap 子菜单单击子菜单 2 时如何关闭子菜单 1

html - 使图像适合父 div 的大小

css - 为什么 "display: table-cell"坏了 "position: absolute"

android - 以编程方式应用 css、样式或主题 android

html - 如何制作帖子标题装饰

javascript - 单击图像的不同部分时触发事件 - javascript

javascript - 无法在 javascript 中将所有复选框重置为未选中

html - animate.css 动画距离

javascript - 在javascripts中用汉字将十六进制解码为字符串