【问题标题】:How to scale Javascript slideshow with browser size如何使用浏览器大小缩放 Javascript 幻灯片
【发布时间】:2017-07-17 20:20:54
【问题描述】:

所以我用 Javascript/jQuery 完成了这个小自动幻灯片。它工作得非常好,但是我不知道如何用屏幕尺寸缩放它,让它变成液体。它目前针对 1920x1080 进行了优化。

我尝试将此值 (document.body.style.width) 分配给宽度变量,但没有成功,尝试使用图像的百分比而不是像素,还尝试使用非常骇人听闻的修复方法,将媒体查询全部设置为否利用。

如果有人对我如何完成此操作有任何想法,请告诉(再次,我需要它与浏览器窗口一起缩放),无论如何,这是代码:

  <div class="slider">
    <ul class="slides">
      <li class="slide"><img src="index/showcase.png" alt="#"/></li>
      <li class="slide"><img src="index/pic4.png" alt="#"/></li>
      <li class="slide"><img src="index/pic3.png" alt="#"/></li>
      <li class="slide"><img src="index/pic5.png" alt="#"/></li>
      <li class="slide"><img src="index/pic6.png" alt="#"/></li>
    </ul>
  </div>

   .slider {
   width: 1920px;
   height: 780px;
   overflow: hidden;
   }

  .slider .slides {
  display: block;
  width: 9600px;
  height: 780px;
  margin: 0;
  padding: 0;
  }

.slider .slide {
 float: left;
 list-style-type: none;
 width: 1920px;
 height: 780px;
 }




    <script type="text/javascript">
       var myInterval = setInterval(function() {
       console.log(new Date());
       }, 1000);
        </script>

    <script type="text/javascript">
     $(function() {

    //configuration
    var width = 1920;
    var animationSpeed = 1000;
    var pause = 4000;
    var currentSlide = 1;

    //cache DOM
    var $slider = $('.slider');
    var $slideContainer = $slider.find('.slides');
    var $slides = $slideContainer.find('.slide');

    var interval;

    function startSlider() {
      interval = setInterval(function() {
        $slideContainer.animate({'margin-left': '-='+width}, animationSpeed, 
    function(){
          currentSlide++;
          if (currentSlide === $slides.length) {
            currentSlide = 1;
            $slideContainer.css('margin-left', 0);
         }
      });
    }, pause);
  }        
  // function stopSlider() {
  //   clearInterval(interval);
  //}

  //$slider.on('mouseenter', startSlider).on('mouseleave', startSlider);

  startSlider();
});
</script>

【问题讨论】:

    标签: javascript jquery responsive-design slideshow liquid


    【解决方案1】:

    vw 和 vh 可能是您所追求的。而不是 width: 20% 或 width: 550px,您将 width: 100vw 设置为视口宽度的 100%(vh 是视口高度)。然后它应该随着视口调整大小而调整大小。

    【讨论】:

    • 尝试使用 vw 和 vh,似乎不起作用。不过感谢您的尝试。
    • jsbin.com/wipulapero/1/edit?html,js,output 似乎工作得很好。主幻灯片 div 使用 vw 和 vh 调整到框的大小。
    • 刚刚试了一下,效果很好,不知道上次发生了什么lol,谢谢。
    • 哈哈,np。很高兴你得到它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 2020-10-13
    • 1970-01-01
    • 2016-01-27
    相关资源
    最近更新 更多