使用 div 更改 Active Slick Carousel

Change Active Slick Carousel using div

我们使用 slick carousel 这样我们 <div class='item__wrapper'> 一次只显示一张幻灯片。在它下面是三个 items,点击 item,光滑的旋转木马应该被更新。

问题

  1. 当使用 item__boxes 作为 slick 轮播时,我们所有的样式都乱七八糟,所以我们不能 $('.item__boxes).slick({});
  2. 单击 item__boxes 中的第一个、第二个或第三个 item 时,item__wrapper 始终设置为 slide 3

问题

Goal/Expected 结果:

  1. 单击第一张 item 时,将第一张幻灯片设置为 item__wrapper
  2. 中的活动幻灯片
  3. 点击第二张 item,将第二张幻灯片设置为 item__wrapper
  4. 中的活动幻灯片
  5. 点击第三张 item,将第三张幻灯片设置为 item__wrapper
  6. 中的活动幻灯片
  7. 完成所有目标 1-3 而不做 $('.item__boxes).slick({});

代码:

$('.item__wrapper').slick({
 
          infinite: true,
          speed: 1500,
          dots: false,
          prevArrow: false,
          nextArrow: false
});

$('.item__boxes').on('click', function() {
 
 var slickIndex = $(this).attr('data-slick-index');
 $('.item__wrapper').slick('slickGoTo', slickIndex);
});
.filter {
  width: 100%;
  height: 100%;
  padding: 45px;
  margin-right: -45px;
}
.item {
  display: none;
  position: relative;
}
.item.active {
  display: block;
}
.item1 {
  background-image: url("https://placeimg.com/1000/480/nature");
}
.item2 {
  background-image: url("https://placeimg.com/640/480/arch");
}
.item3 {
  background-image: url("https://placeimg.com/640/480/tech");
}
.item__wrapper {
  max-width: 60%;
  position: relative;
  background-size: cover;
  background-repeat: no-repeat;
  background-color: rgba(238, 238, 238, 0.5);
}
.item__img img {
  top: 0px;
  position: absolute;
  width: 100% !important;
  opacity: 0.5;
}
.item__text {
  top: 0px;
  position: relative;
  min-height: 100%;
  line-height: 1.4;
  padding-right: 70px;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: top;
  justify-content: center;
}
.item__boxes {
  display: flex;
  position: relative;
  opacity: 0.9;
}
.item__boxes > div {
  border: 1px solid;
}
.col-padding {
  padding: 16px 16px 5px 16px;
}
.col-m-12 {
  width: 100%;
}
@media (min-width: 1024px) {
  .col-t-6 {
    width: 50%;
  }
}
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/>

<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.css"/>
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.js"></script>
    
<div class="item__wrapper">
   <div class="item active" id='item1'>
     <div class="item__text">
      <div class="filter">
       <h3>Some title 1</h3>
       <p>Efficiently communicate sticky quality vectors after compelling growth strategies. Compellingly scale future-proof content rather than enterprise users. Uniquely build scalable applications vis-a-vis performance based functionalities. Monotonectally procrastinate.</p>
      </div>
     </div> 
    </div>
   <div class="item active" id="item2" >
        <div class="item__text">
      <div class="filter">
       <h3>Some title 2</h3>
       <p>Efficiently communicate sticky quality vectors after compelling growth strategies. Compellingly scale future-proof content rather than enterprise users. Uniquely build scalable applications vis-a-vis performance based functionalities. Monotonectally procrastinate.</p>
      </div>
     </div> 
    </div>
   <div class="item active"  id="item3" >
        <div class="item__text">
      <div class="filter">
       <h3>Some title 3</h3>
       <p>Efficiently communicate sticky quality vectors after compelling growth strategies. Compellingly scale future-proof content rather than enterprise users. Uniquely build scalable applications vis-a-vis performance based functionalities. Monotonectally procrastinate.</p>
      </div>
     </div> 
    </div>
 
   
</div>
<div class="item__boxes">
     <div class="box col-m-12 col-t-6 col-padding" data-slick-index="-1">
      <div>Some Title</div>
      <div>Enthusiastically incubate diverse initiatives without multifunctional strategic theme areas.</div>
    </div>
    <div class="box col-m-12 col-t-6 col-padding" data-slick-index="0">
     <div>Globally Title</div>
     <div>Globally impact integrated infomediaries via seamless mindshare. </div>
    </div>
    <div class="box col-m-12 col-t-6 col-padding" data-slick-index="1">
     <div>Distinctively Title</div>
     <div>Distinctively strategize long-term high-impact ideas whereas client-centered leadership skills.</div>
    </div>
 </div>

试试这个。

$('.item__wrapper').slick({
  infinite: true,
  speed: 1500,
  dots: false,
  prevArrow: false,
  nextArrow: false
});

$('[data-slide]').click(function(e){
  var slideno = $(this).data('slide');
  $('.item__wrapper').slick('slickGoTo', slideno);
});
.filter {
  width: 100%;
  height: 100%;
  padding: 45px;
  margin-right: -45px;
}
.item {
  display: none;
  position: relative;
}
.item.active {
  display: block;
}
.item1 {
  background-image: url("https://placeimg.com/1000/480/nature");
}
.item2 {
  background-image: url("https://placeimg.com/640/480/arch");
}
.item3 {
  background-image: url("https://placeimg.com/640/480/tech");
}
.item__wrapper {
  max-width: 60%;
  position: relative;
  background-size: cover;
  background-repeat: no-repeat;
  background-color: rgba(238, 238, 238, 0.5);
}
.item__img img {
  top: 0px;
  position: absolute;
  width: 100% !important;
  opacity: 0.5;
}
.item__text {
  top: 0px;
  position: relative;
  min-height: 100%;
  line-height: 1.4;
  padding-right: 70px;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: top;
  justify-content: center;
}
.item__boxes {
  display: flex;
  position: relative;
  opacity: 0.9;
}
.item__boxes > div {
  border: 1px solid;
}
.col-padding {
  padding: 16px 16px 5px 16px;
}
.col-m-12 {
  width: 100%;
}
@media (min-width: 1024px) {
  .col-t-6 {
    width: 50%;
  }
}
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css"/>

<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.css"/>
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.js"></script>
    
<div class="item__wrapper">
   <div class="item active" id='item1'>
     <div class="item__text">
      <div class="filter">
       <h3>Some title 1</h3>
       <p>Efficiently communicate sticky quality vectors after compelling growth strategies. Compellingly scale future-proof content rather than enterprise users. Uniquely build scalable applications vis-a-vis performance based functionalities. Monotonectally procrastinate.</p>
      </div>
     </div> 
    </div>
   <div class="item" id="item2" >
        <div class="item__text">
      <div class="filter">
       <h3>Some title 2</h3>
       <p>Efficiently communicate sticky quality vectors after compelling growth strategies. Compellingly scale future-proof content rather than enterprise users. Uniquely build scalable applications vis-a-vis performance based functionalities. Monotonectally procrastinate.</p>
      </div>
     </div> 
    </div>
   <div class="item"  id="item3" >
        <div class="item__text">
      <div class="filter">
       <h3>Some title 3</h3>
       <p>Efficiently communicate sticky quality vectors after compelling growth strategies. Compellingly scale future-proof content rather than enterprise users. Uniquely build scalable applications vis-a-vis performance based functionalities. Monotonectally procrastinate.</p>
      </div>
     </div> 
    </div>
 
   
</div>
<div class="item__boxes">
     <div class="box col-m-12 col-t-6 col-padding" data-slide="0">
      <div>Some Title</div>
      <div>Enthusiastically incubate diverse initiatives without multifunctional strategic theme areas.</div>
    </div>
    <div class="box col-m-12 col-t-6 col-padding" data-slide="1">
     <div>Globally Title</div>
     <div>Globally impact integrated infomediaries via seamless mindshare. </div>
    </div>
    <div class="box col-m-12 col-t-6 col-padding" data-slide="2">
     <div>Distinctively Title</div>
     <div>Distinctively strategize long-term high-impact ideas whereas client-centered leadership skills.</div>
    </div>
 </div>