当某张幻灯片的 class 在 fullpage.js 滑块中处于活动状态时,如何隐藏元素?

How do I hide an element when a certain slide has a class of active in fullpage.js slider?

我正在使用 fullpage.js,页面上有一个固定元素需要根据活动的幻灯片进行更改。所以基本上,如果幻灯片 1 处于活动状态,则会显示固定元素 1。如果幻灯片 2 处于活动状态,则显示固定元素 2,依此类推。什么都不适合我,我不明白为什么。

$('.fp-slidesNav a').click(function() {
        var activeSlide = $('.slide.active');
        if ((activeSlide).hasClass('slide1')) {
            $('fixedelement1').show();
            $('fixedelement1').siblings().hide();
        }
        else if ((activeSlide).hasClass('slide2')) {
            $('fixedelement2').show();
            $('fixedelement2').siblings().hide();
        }
       else if {
         ...
       }
});

可能是我的 class 名称有误,或者我的所有代码中某处有拼写错误,但我不这么认为,因为我检查了很多次所有内容。这很奇怪,因为我可以做到

 $('a').click(function() {
       alert('hello');
});

当我点击 .fp-slidesNav 一个锚点时没有收到任何警报,但点击另一个随机 link 我收到了警报。

使用 afterSlideLoad (anchorLink, index, slideAnchor, slideIndex)

在滚动结束后加载一个部分的幻灯片后触发回调。参数:

anchorLink: anchorLink corresponding to the section.

index: index of the section. Starting from 1.

slideAnchor: anchor corresponding to the slide (in case there is)

slideIndex: index of the slide. Starting from 1. (the default slide doesn't count as slide, but as a section)

如果没有为幻灯片定义 anchorLinks,slideIndex 参数将是唯一可以使用的参数。示例:

$('#fullpage').fullpage({
    anchors: ['firstPage', 'secondPage', 'thirdPage', 'fourthPage', 'lastPage'],

    afterSlideLoad: function( anchorLink, index, slideAnchor, slideIndex){
        var loadedSlide = $(this);

        //first slide of the second section
        if(anchorLink == 'secondPage' && slideIndex == 1){
            alert("First slide loaded");
        }

        //second slide of the second section (supposing #secondSlide is the
        //anchor for the second slide
        if(index == 2 && slideIndex == 'secondSlide'){
            alert("Second slide loaded");
        }
    }
});

我认为@KishoreSahas 是对的。但几乎没有变化/即兴创作

假设您在页面上的固定元素类似于以下内容。可能是带有子 div 标签

的部分标签
<ul id="fixedelement">
  <li class="slide firstPage active"></li>
  <li class="slide secondPage "></li>
  <li class="slide thirdPage "></li>
  <li class="slide fourthPage "></li>

</ul>

您的滑块代码需要如下所示

$('#myslider').fullpage({
  anchors: ['firstPage', 'secondPage', 'thirdPage', 'fourthPage', 'lastPage']
  afterSlideLoad: function(anchorLink, index){
    $('#fixedelement .slide').each(function () {$(this).hide();}
    $('#fixedelement .' + anchorLink).each(function () {$(this).show();}
  }
});

我以前从未使用过fullpage.js,所以上面的代码没有经过测试。