gwa*_*ar9 12 javascript jquery slick.js
使用Slick并寻找一种方法来禁用和隐藏prev控件,直到用户单击下一个箭头.同样,我想让Next控件在用户到达最后一张幻灯片后被禁用并隐藏.
我想要完成的一个很好的例子就在这里
光滑是否已经为此我忽略了一个属性?这是否可以通过添加禁用类使用CSS来完成?
我发现的唯一相似的是这个
$('.pages .slider').slick({
autoplay: true,
autoplaySpeed: 5000,
infinite: false,
onAfterChange: function(slide, index) {
if(index == 4){
$('.pages .slider').slickPause();
Run Code Online (Sandbox Code Playgroud)
但它不完全是我想要的.
Jef*_*los 25
只需使用infite:false并为类slick-disabled创建一个自定义css.例如.
JS - jQuery
$('.my-slider').slick({
infinite: false,
slidesToShow: 1,
slidesToScroll: 1
});
Run Code Online (Sandbox Code Playgroud)
CSS
.slick-disabled {
opacity: 0;
pointer-events:none;
}
Run Code Online (Sandbox Code Playgroud)
Rap*_*ent 10
您可以将css添加pointer-events: none到按钮中.该css属性禁用元素上的所有事件.所以这样的事情.
// Slick stuff
...
onAfterChange: function(slide, index) {
if(index === 4) {
$('.slick-next').css('pointer-events', 'none')
}
else {
$('.slick-next').css('pointer-events', 'all')
}
}
Run Code Online (Sandbox Code Playgroud)
还有一些关于.slick-prev元素的指导原则.
在该解决方案中,您应该从配置中获取该功能,并仅使用类似的内容对其进行引用.
// Inside slick config
onAfterChange: afterChange
// Below somewhere
var afterChange = function(slide, index) { //stuff here }
Run Code Online (Sandbox Code Playgroud)
还要检查是否有办法获取滑块的长度并4在if语句中验证它而不是硬编码.你可能会做类似的事情$('.slide').length
以下是如何实现该afterChange()功能.
$(document).ready(function(){
$('.scrollable').slick({
dots: false,
slidesToShow: 1,
slidesToScroll: 3,
swipeToSlide: true,
swipe: true,
arrows: true,
infinite: false,
});
$('.scrollable').on('afterChange', function (event, slick, currentSlide) {
if(currentSlide === 2) {
$('.slick-next').addClass('hidden');
}
else {
$('.slick-next').removeClass('hidden');
}
if(currentSlide === 0) {
$('.slick-prev').addClass('hidden');
}
else {
$('.slick-prev').removeClass('hidden');
}
})
});
Run Code Online (Sandbox Code Playgroud)
还有一些CSS,如果你想做动画,你应该在这里做.
.slick-prev.hidden,
.slick-next.hidden {
opacity: 0;
pointer-events:none;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26318 次 |
| 最近记录: |