【问题标题】:Creating content slider that works only on small screens创建仅适用于小屏幕的内容滑块
【发布时间】:2016-05-16 17:17:02
【问题描述】:

我正在尝试创建仅在屏幕尺寸小于 640 像素时才有效的图像滑块。当屏幕宽于 640 时,它会显示 3 个宽度为 33% 的项目,因此它非常适合屏幕。我实现了让它们滑动,但如果我将大小重新调整为大于 640 像素并清除间隔,滑块就会冻结并让我扭曲 3 张图片。有没有办法让滑块只在一种屏幕尺寸上工作?下面的代码是我到目前为止得到的,但我只是天堂没有找到任何类似的任务,或者在谷歌上看到有人这样做。

Jquery 代码

 var slider = $("#slider")
    var container = $("#slides");
    var slides = $(".slides");
    var len = 3;
    var current = 1;
    var width = '100%';
    var animationSpeed = 3000;
    var pause = 3000;
    var interval;

    function startSlider() {
        interval = setInterval(function () {
                container.animate({
                    'margin-left': '-=' + width
                }, animationSpeed, function () {
                    if (++current === len) {
                        current = 1;
                        container.css('margin-left', 0);
                    }
                });
            }, pause);
    }

    function stopSlider(){
        clearInterval(interval);
    }

    function checkView() {
        var winWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
        if(winWidth < 640   ) {
           startSlider();
        } else{

            stopSlider();
        }

    }
    checkView();
    $(window).resize(checkView);

HTML 代码

<section id="slider" class="slider clearfix">
       <nav class="nav-arrow">
           <img id="#prev" class="prev" src="images/1463330656_br_prev.png" alt="prev">
           <img id="#next" class="next" src="images/1463330669_br_next.png" alt="next">
       </nav>
     <ul id="slides" class="slides">
         <li><img class="slide" src="images/box.jpg" alt=""></li>
         <li><img class="slide" src="images/bridge.jpg" alt=""></li>
         <li><img class="slide" src="images/smile.jpg" alt=""></li>
     </ul>
</section>

【问题讨论】:

  • 如果您希望滑块同时在手机/移动设备和桌面上工作,请查看此页面的来源musicmatters.ie/gallery.html。它有几个有用的 jquery gallery-helper 脚本。值得一看。 jquery.wmuSlider.js 和 jquery.wmuGallery.js

标签: javascript jquery html css slider


【解决方案1】:

你真的应该根据 css 媒体查询来调整内容或“CheckView”的大小,而不是硬编码到你的 jquery 中。

您可以在 css 的末尾附加多个媒体查询,您可以在其中相应地调整大小,例如

@media only screen and (min-width:320px) and (max-width:640px){ // your necessary css here}
 @media only screen and (min-width:1024px){ // your necessary css here}

注意:这些只是示例

【讨论】:

  • 我正在使用媒体查询调整大小,但滑块在 jquery 中有效。问题不在于样式,而在于屏幕变小或变大时的滑动效果。您是否遇到过以这种方式工作的插件或滑块?
  • 理想情况下,您是否希望滑块也能在桌面上运行?
  • 不...只是在小屏幕上,在桌面上应该看起来像三列布局看看这个代码笔codepen.io/Kyokotsu/pen/pymgwK
猜你喜欢
  • 2016-10-31
  • 2015-12-31
  • 1970-01-01
  • 2017-05-13
  • 1970-01-01
  • 2017-08-14
  • 2018-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多