【问题标题】:dynamic change class in section, jquery节中的动态更改类,jquery
【发布时间】:2016-01-13 21:03:17
【问题描述】:

文档已准备就绪。滚动页面时在“cd-section”中动态分配类“可见”

当 id="container-3" 分配一个“可见”类时我需要 - 容器 id="site" 获取类 .dark

我的脚本不适用于容器类的动态变化

<div id="site">
  <section class="itemListPrimary   cd-section visible" >1</section>
  <section class="itemListSecondary cd-section" id="container-0"></section>
  <section class="itemListSecondary cd-section" id="container-1"></section>
  <section class="itemListSecondary cd-section" id="container-2"></section>
  <section class="itemListSecondary cd-section" id="container-3"></section>
</div>
<script>
jQuery(document).ready(function(){
  if ( jQuery('#container-03').hasClass('visible')) {
   jQuery('#site').addClass('dark');
  } else {
    jQuery('#site').removeClass('dark');
  }
});
</script>

【问题讨论】:

  • 更好用toggleClass
  • 您需要使用 dom 观察者或在更改类时触发事件,然后使用该事件分配活动类
  • 如果我错了请纠正我 - 你想将visible 归类到当前位于视口中的部分(最终用户可见)吗?当最后一个容器进入视口时,您想将dark 类添加到#site
  • 最好显示一个 JSFiddle?

标签: javascript jquery


【解决方案1】:

如果滚动时类发生变化,那么您可能应该使用scroll() 事件来检查每次用户滚动时是否将类active 分配给该部分,然后切换类dark

jQuery(window).scroll(function(){
  if ( jQuery('#container-3').hasClass('active')) {
       jQuery('#site').addClass('dark');
  } else {
       jQuery('#site').removeClass('dark');
  }
});

【讨论】:

  • 是什么触发了 cd-sections 类的变化?
【解决方案2】:

您可能正在寻找类似的东西?

 jQuery(window).scroll(function(){
        if(jQuery(".itemListSecondary.cd-section").hasClass("active")){
         jQuery("#site").toggleClass("dark");
        }
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 2015-04-26
    • 1970-01-01
    • 2018-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多