首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在slick滑块加载后运行脚本

在slick滑块加载后运行脚本
EN

Stack Overflow用户
提问于 2016-09-08 20:56:48
回答 3查看 16.9K关注 0票数 5

我想在body标签上添加类,在滑动滑块加载后,其中一个滑块具有class . class -slide。

HTML

代码语言:javascript
复制
 <div class="slider">
  <div class="slide">
    1
  </div>
  <div class="slide">
    2
  </div>
  <div class="slide class-slide">
    3
  </div>
</div>

因此,在slick加载后,如果带有.class-slide类的幻灯片是活动的,那么我需要一个标签上的demo类。

我试过了

代码语言:javascript
复制
jQuery(function () {
 if(jQuery(".class-slide").hasClass("slick-active")){
   jQuery(body).addClass('body-class');
 }

但是,因为DOM已经加载,所以这不会起作用。我们该如何解决这个问题呢?

Link to Codepen

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-08 21:05:24

请检查下面的代码。在每一张幻灯片上,afterChange事件都会触发。我们可以检查带有class类的div -slide是否激活。如果div with class class-slide是活动的,那么类body-class将被添加到body中,否则它将被删除。

代码语言:javascript
复制
jQuery('.slider').on('afterChange', function(event, slick, currentSlide){
    if(jQuery(".class-slide").hasClass("slick-active")){
       jQuery(body).addClass('body-class');
    }else{
       jQuery(body).removeClass('body-class');
    }
});
票数 5
EN

Stack Overflow用户

发布于 2016-09-08 21:14:32

Slick slider有event init,可以像这样使用

代码语言:javascript
复制
$('.your-element').on('init', function(event, slick){
    // event subscriber goes here
});
票数 6
EN

Stack Overflow用户

发布于 2021-02-12 22:38:24

如果您不想等到第一张幻灯片更改,例如,如果自动播放速度设置为几秒,则可以使用setPosition事件。

代码语言:javascript
复制
jQuery('.slider').on('setPosition', function(event, slick, currentSlide){
    if(jQuery(".class-slide").hasClass("slick-active")){
       jQuery(body).addClass('body-class');
    }else{
       jQuery(body).removeClass('body-class');
    }
});

我对此进行了测试,在滑块排列好每张幻灯片后,回调就会立即运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39391581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档