首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >父母旋转木马中的儿童旋转木马

父母旋转木马中的儿童旋转木马
EN

Stack Overflow用户
提问于 2017-04-05 16:24:27
回答 2查看 5.5K关注 0票数 1

每一个滑块滑块都有它自己的子滑块,不管它的父滑块是什么,它都具有独立性。现在,我想要的视图是下面的布局。

这就是我到目前为止所取得的成就。小提琴

代码语言:javascript
复制
$('.slider').slick({
  slidesToShow: 3,
  centerMode: true,
  centerPadding: 0,
  dots: true,
  infinite: true,
  cssEase: 'linear'
});

$('.slider-mini').slick({
  slidesToShow: 3,
  dots: false,
  infinite: true,
  cssEase: 'linear'
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-13 07:46:33

如果我理解正确,这就是你想要的:

代码语言:javascript
复制
$('.slider').slick({
  slidesToShow: 3,
  centerMode: true,
  centerPadding: 0,
  dots: true,
  infinite: true,
  cssEase: 'linear',
  onBeforeChange: (slider) => {
     console.log('onBeforeChange', slider);
     slider.$slider.addClass('sliding');
  },
  onAfterChange: (slider) => {
     console.log('onAfterChange', slider);
     slider.$slider.removeClass('sliding');
  }

})
$('.slider-mini').slick({
  slidesToShow: 3,
  dots: false,
  infinite: true,
  cssEase: 'linear'
});
代码语言:javascript
复制
.slider {
  width: 650px;
  margin: 0 auto;
}

img {
  width: 200px;
  height: 200px;
}

.red {
  background: red;
  height: 200px;
  width: 200px
}

.green {
  background: green;
  height: 200px;
  width: 200px
}

.yellow {
  background: yellow;
  height: 200px;
  width: 200px
}

.black {
  background: black;
  height: 200px;
  width: 200px
}

.slick-center {
  border: solid 0px blue
}

.red-mini {
  background: red;
  margin-right: 5px;
  margin-top: 10px
}

.green-mini {
  background: green;
  margin-right: 5px;
  margin-top: 10px
}

.yellow-mini {
  background: yellow;
  margin-right: 5px;
  margin-top: 10px
}

.black-mini {
  background: black;
  margin-right: 5px;
  margin-top: 10px
}

.slider .slick-prev {
  background: black
}

.slider .slick-next {
  background: black;
  z-index: 5;
}
.slider-mini {
  margin-top: 10px;
  padding: 0 20px;
  width: 640px;
  margin-left: -215px;
  visibility: hidden;
}
.slick-center .slider-mini {
  visibility: visible;
}
.slider-mini .slick-prev {
  left: 0;
  transition: opacity 250ms;
}
.slider-mini .slick-next {
  right: 0;
  transition: opacity 250ms;
}

.slider.sliding .slick-prev, .slider.sliding .slick-next {
  opacity: 0;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.slick/1.3.15/slick.min.js"></script>
<link href="https://cdn.jsdelivr.net/jquery.slick/1.3.15/slick.css" rel="stylesheet"/>
<div class="slider">
  <div>
    <div class="red">
    </div>
    <div class="slider-mini">
      <div class="red-mini">
        1
      </div>
      <div class="red-mini">
        2
      </div>
      <div class="red-mini">
        3
      </div>
      <div class="red-mini">
        4
      </div>
      <div class="red-mini">
        5
      </div>
    </div>
  </div>
  <div>
    <div class="green">

    </div>
    <div class="slider-mini">
      <div class="green-mini">
        1
      </div>
      <div class="green-mini">
        2
      </div>
      <div class="green-mini">
        3
      </div>
      <div class="green-mini">
        4
      </div>
      <div class="green-mini">
        5
      </div>
    </div>
  </div>
  <div>
    <div class="yellow">
      
    </div>
    <div class="slider-mini">
        <div class="yellow-mini">
          1
        </div>


        <div class="yellow-mini">
          2
        </div>
        <div class="yellow-mini">
          3
        </div>
        <div class="yellow-mini">
          4
        </div>
        <div class="yellow-mini">
          5
        </div>
      </div>
  </div>
  <div>
    <div class="black">
      
    </div>
    <div class="slider-mini">
        <div class="black-mini">
          1
        </div>


        <div class="black-mini">
          2
        </div>
        <div class="black-mini">
          3
        </div>
        <div class="black-mini">
          4
        </div>
        <div class="black-mini">
          5
        </div>
      </div>
  </div>

</div>

票数 2
EN

Stack Overflow用户

发布于 2017-04-17 12:02:18

我选择了另一种方法,而不是哥们儿提供的答案,这对你来说可能也很有趣。

JSFiddle和我的答案

注意:我已经将Slick库升级到1.6.0,所以现在也需要slick主题.own(除非您想用自己的东西完全替换它)。

我稍微改变了HTML的结构,将所有的迷你滑块放在一个div.mini-sliders中,并将该元素转换为一个不能手动调整的滑块。然后设置顶部滑块的asNavFor选项以指向该滑块,顶部滑块同时自动移动迷你滑块,这看起来更好,因为以前的迷你滑块不会突然消失。我还使箭头消失时,滑块的变化,按要求。

我遇到了一个小滑块按钮的问题,因为这些按钮显示在其可见区域之外,并在同级滑块中变得可见,但考虑到您的模拟显示与滑块重叠的箭头,一些CSS很容易修复,同时也匹配您的设计。如果要使按钮向外显示更多,则需要稍微增加.mini-sliders .slick-slide .slick-slide选择器中幻灯片的页边距。

代码语言:javascript
复制
$('.slider').slick({
  slidesToShow: 3,
  centerMode: true,
  centerPadding: 0,
  swipeToSlide: true,
  dots: false,
  infinite: true,
  asNavFor: '.mini-sliders',
  cssEase: 'linear'
});

$('.mini-sliders').slick({
  slidesToShow: 1,
  arrows: false,
  draggable: false,
  touchMove: false,
  dots: false
}).on('beforeChange', function() {
  $('.mini-sliders button').hide();
}).on('afterChange', function() {
  $('.mini-sliders button').show();
});

$('.mini-sliders .slick-slide').slick({
  slidesToShow: 5,
  dots: false,
  swipeToSlide: true,
  arrows: true,
  infinite: true,
  cssEase: 'linear'
}).on('beforeChange', function(e) {
  e.stopPropagation();
});
代码语言:javascript
复制
.slider, .mini-sliders {
  width: 650px;
  margin: 0 auto;
}

.slider .slick-slide {
  height: 200px;
}

.mini-sliders .slick-slide .slick-slide {
  margin: 10px 5px;
  height: 80px;
  color: white;
  text-shadow: 1px 1px 1px black;
}

.slider .slick-prev {
  left: -10px;
  z-index: 10;
}

.slider .slick-next {
  right: -10px;
}

.mini-sliders .slick-slide .slick-prev {
  left: 0;
  z-index: 10;
}

.mini-sliders .slick-slide .slick-next {
  right: 0;
}

.slick-arrow {
  background: black !important;
}

img {
  width: 200px;
}

.red {
  background: red;
}

.green {
  background: green;
}

.yellow {
  background: yellow;
}

.black {
  background: black;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.slick/1.6.0/slick.min.js"></script>
<link href="https://cdn.jsdelivr.net/jquery.slick/1.6.0/slick.css" rel="stylesheet"/>
<link href="https://cdn.jsdelivr.net/jquery.slick/1.6.0/slick-theme.css" rel="stylesheet"/>

<div class="slider">
  <div class="red"></div>
  <div class="green"></div>
  <div class="yellow"></div>
  <div class="black"></div>
</div>
<div class="mini-sliders">
  <div>
    <div class="red">1</div>
    <div class="red">2</div>
    <div class="red">3</div>
    <div class="red">4</div>
    <div class="red">5</div>
    <div class="red">6</div>
  </div>
  <div>
    <div class="green">1</div>
    <div class="green">2</div>
    <div class="green">3</div>
    <div class="green">4</div>
    <div class="green">5</div>
    <div class="green">6</div>
  </div>
  <div>
    <div class="yellow">1</div>
    <div class="yellow">2</div>
    <div class="yellow">3</div>
    <div class="yellow">4</div>
    <div class="yellow">5</div>
    <div class="yellow">6</div>
  </div>
  <div>
    <div class="black">1</div>
    <div class="black">2</div>
    <div class="black">3</div>
    <div class="black">4</div>
    <div class="black">5</div>
    <div class="black">6</div>
  </div>
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43236703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档