如果显示带有 class 的幻灯片,则将 Slick Carousel add/remove class 添加到正文
Slick Carousel add/remove class to body if an slide with class is showed
这是我的 html 标记:
<body>
<div class="slider">
<div class="slide1">
-- my slide 1 content --
</div>
<div class="slide2">
-- my slide 2 content --
</div>
<div class="slide3">
-- my slide 3 content --
</div>
</div>
</body>
如果 'slide1' 正在显示,我如何将 class 'slide1-current' 添加到主体中,然后更改为 'slide2-current' 并同时删除 'slide1-current'如果显示 'slide2' 等等?
(function() {
var slides = jQuery(".slider > div");
console.log(slides);
var currentDisplayed = 0;
var childCount = slides.length;
$(slides[currentDisplayed]).addClass("slider-current");
setInterval(function() {
$(slides[currentDisplayed]).removeClass("slider-current");
if (currentDisplayed < (childCount - 1)) {
$(slides[currentDisplayed]).removeClass("slider-current");
currentDisplayed += 1;
} else {
currentDisplayed = 0;
}
$(slides[currentDisplayed]).addClass("slider-current");
}, 1000);
})()
.slider-current {
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="slider">
<div class="slide1">
-- my slide 1 content --
</div>
<div class="slide2">
-- my slide 2 content --
</div>
<div class="slide3">
-- my slide 3 content --
</div>
</div>
你可以试试
$('.slider').slick({
autoplay: true,
autoplaySpeed: 1000,
infinite: true,
speed: 500,
fade: true,
cssEase: 'linear'
}).on({
beforeChange: function(event, slick, currentSlide, nextSlide) {
$('body').removeClass('slide' + (currentSlide + 1) + '-current').addClass('slide' + (nextSlide + 1) + '-current')
}
});
.slide1-current {
color: red;
}
.slide2-current {
color: green;
}
.slide3-current {
color: blue;
}
<script type="text/javascript" src="//code.jquery.com/jquery-2.1.3.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.8/slick.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.8/slick.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.8/slick-theme.css" />
<div class="slider">
<div class="slide1">-- my slide 1 content --</div>
<div class="slide2">-- my slide 2 content --</div>
<div class="slide3">-- my slide 3 content --</div>
</div>
这是我的 html 标记:
<body>
<div class="slider">
<div class="slide1">
-- my slide 1 content --
</div>
<div class="slide2">
-- my slide 2 content --
</div>
<div class="slide3">
-- my slide 3 content --
</div>
</div>
</body>
如果 'slide1' 正在显示,我如何将 class 'slide1-current' 添加到主体中,然后更改为 'slide2-current' 并同时删除 'slide1-current'如果显示 'slide2' 等等?
(function() {
var slides = jQuery(".slider > div");
console.log(slides);
var currentDisplayed = 0;
var childCount = slides.length;
$(slides[currentDisplayed]).addClass("slider-current");
setInterval(function() {
$(slides[currentDisplayed]).removeClass("slider-current");
if (currentDisplayed < (childCount - 1)) {
$(slides[currentDisplayed]).removeClass("slider-current");
currentDisplayed += 1;
} else {
currentDisplayed = 0;
}
$(slides[currentDisplayed]).addClass("slider-current");
}, 1000);
})()
.slider-current {
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="slider">
<div class="slide1">
-- my slide 1 content --
</div>
<div class="slide2">
-- my slide 2 content --
</div>
<div class="slide3">
-- my slide 3 content --
</div>
</div>
你可以试试
$('.slider').slick({
autoplay: true,
autoplaySpeed: 1000,
infinite: true,
speed: 500,
fade: true,
cssEase: 'linear'
}).on({
beforeChange: function(event, slick, currentSlide, nextSlide) {
$('body').removeClass('slide' + (currentSlide + 1) + '-current').addClass('slide' + (nextSlide + 1) + '-current')
}
});
.slide1-current {
color: red;
}
.slide2-current {
color: green;
}
.slide3-current {
color: blue;
}
<script type="text/javascript" src="//code.jquery.com/jquery-2.1.3.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.8/slick.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.8/slick.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.8/slick-theme.css" />
<div class="slider">
<div class="slide1">-- my slide 1 content --</div>
<div class="slide2">-- my slide 2 content --</div>
<div class="slide3">-- my slide 3 content --</div>
</div>