使用div更改Active Slick Carousel

时间:2018-12-14 01:33:20

标签: javascript jquery html css slick.js

我们使用slick carousel是为了使List<object> collection = actionParameter .Select( m => (object) m) .ToList(); 一次只显示1张幻灯片。在其下方是三个<div class='item__wrapper'>,在点击items时,应该更新光滑的轮播。

问题

  1. 在将item用作item__boxes轮播时,我们所有的样式都弄乱了,因此我们无法进行slick
  2. $('.item__boxes).slick({});中单击第一,第二或第三item时,item__boxes始终设置为item__wrapper

问题

  • 我们如何设置slide 3以便在点击该item__boxes时达到我们的目标?例如,单击item中的第二个item会将item__boxes设置为第二张幻灯片。

目标/预期结果:

  1. 单击第一个item__wrapper时,将第一个幻灯片设置为item中的活动幻灯片
  2. 单击第二张item__wrapper,将第二张幻灯片设置为item中的活动幻灯片
  3. 单击第三张item__wrapper,将第三张幻灯片设置为item中的活动幻灯片
  4. 不执行item__wrapper即可完成所有目标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%;
  }
}

1 个答案:

答案 0 :(得分:4)

尝试一下。

$('.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>