【发布时间】:2018-08-29 23:58:02
【问题描述】:
我正在使用Slick Slider 创建一个带有一些自定义导航的轮播。我有一组文本链接,单击这些链接会使滑块滑动到相应的幻灯片。效果很好。
我也想让相反的情况发生,所以当用户使用滑块上的箭头导航时,它会突出显示相应的文本链接。我怎样才能做到这一点?有没有办法使用滑块的活动data-slide 来突出显示相应的链接?
到目前为止,这是我的代码:
jquery:
$('.category-gallery').slick({
dots: false,
infinite: true,
slidesToShow: 3,
slidesToScroll: 1,
autoplay: false,
pauseOnHover:false,
focusOnSelect: false,
centerMode:true,
arrows: true,
});
$('a.category-nav[data-slide]').click(function(e) {
e.preventDefault();
var slideno = $(this).data('slide');
$('.category-gallery').slick('slickGoTo', slideno - 1);
});
这会为导航创建一组链接:
<div class="category-links">
<?php $counter = 1; ?>
<section class="row category-term-list" data-equalizer>
<?php foreach ( $pages as $post ) : setup_postdata( $post ); ?>
<div class="columns medium-2 text-center" data-equalizer-watch>
<a class="category-nav" data-slide="<?php echo $counter; ?>" href="#"><?php echo the_title(); ?></a>
</div>
<?php $counter++; ?>
<?php endforeach; ?>
</section>
<?php wp_reset_postdata();?>
</div>
这将创建轮播:
<?php if( have_rows( 'gallery' ) ): ?>
<?php while( have_rows( 'gallery' ) ): the_row(); ?>
<?php $image = get_sub_field( 'image' );
$icon = get_field( 'product_icon' ); ?>
<a href="#" class="slide" data-open="gallery-modal-<?php echo $counter; ?>">
<img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>">
<?php if($icon) { ?><img src="<?php echo $icon['url']; ?>" alt="<?php echo $icon['alt']; ?>"><?php } ?>
</a>
<?php break;
endwhile; ?>
<?php endif; ?>
这是我的尝试:
$('.category-gallery').on('afterChange', function(event, slick, currentSlide, nextSlide){
$('a.category-nav[data-slide=' + (currentSlide + 1) + ']').addClass('active');
});
这不太对,因为它会在您滚动浏览时为每个链接添加一个活动类。
【问题讨论】:
标签: jquery