Javascript jQuery-元素与另一个元素交叉

Javascript jQuery-元素与另一个元素交叉,javascript,jquery,html,Javascript,Jquery,Html,我在页面上有一个固定的div,其中包含一个logo,当用户滚动并且这个logo经过其他div时,我会改变logo的颜色 我有这个工作在一个单一的部门,但需要它跨多个工作,所以任何帮助感谢 在这里可以看到WIP站点…-如果你向下滚动,你会(希望)看到标志从黑色变为白色,因为它穿过一个带插图的鸡蛋。我需要同样的情况发生时,它越过其他div进一步向下的页面 到目前为止的脚本 jQuery(window).scroll(function(){ var fixed = jQuery("logo"

我在页面上有一个固定的div,其中包含一个logo,当用户滚动并且这个logo经过其他div时,我会改变logo的颜色

我有这个工作在一个单一的部门,但需要它跨多个工作,所以任何帮助感谢

在这里可以看到WIP站点…-如果你向下滚动,你会(希望)看到标志从黑色变为白色,因为它穿过一个带插图的鸡蛋。我需要同样的情况发生时,它越过其他div进一步向下的页面

到目前为止的脚本

jQuery(window).scroll(function(){  

  var fixed = jQuery("logo");
  var fixed_position = jQuery("#logo").offset().top;  
  var fixed_height = jQuery("#logo").height();     

  var toCross_position = jQuery("#egg").offset().top;  
  var toCross_height = jQuery("#egg").height();

  if (fixed_position + fixed_height  < toCross_position) { 
    jQuery("#logo img").css({filter : "invert(100%)"}); 
  } else if (fixed_position > toCross_position + toCross_height) {  
    jQuery("#logo img").css({filter : "invert(100%)"});
  } else {    
    jQuery("#logo img").css({filter : "invert(0%)"});  
  }
}
);
jQuery(窗口)。滚动(函数(){
var fixed=jQuery(“徽标”);
var fixed_position=jQuery(“#logo”).offset().top;
var fixed_height=jQuery(“#logo”).height();
var toCross_position=jQuery(“#egg”).offset().top;
var toCross_height=jQuery(“#egg”).height();
如果(固定位置+固定高度<交叉位置){
css({filter:“invert(100%)”});
}如果(固定位置>交叉位置+交叉高度){
css({filter:“invert(100%)”});
}否则{
css({filter:“invert(0%)”});
}
}
);

谢谢你的帮助。谢谢

您需要触发一个div滚动事件。您可以指定

           $("div1").scroll(function(){ 
                   //change the color of the div1
                  } 
              }); 

           $("div2").scroll(function(){ 
                //change the color of the div2
              } 
               });
或者,您可以为要更改颜色的div指定一个类

          $(".div").scroll(function(){ 
                //change the color of the div which you are scrolling now
                   } 
                   });

您可以这样使用:-

$(窗口)。滚动(函数(){
var,该值=$(此值);
$('.section')。每个(函数(){
var s=$(本);
如果(that.scrollTop()>=s.position().top){
如果(s.hasClass('active')){
$('.logo').addClass('invert');
}否则{
$('.logo').removeClass('invert');
}
}
});    
});
正文{
填充:0;
保证金:0;
}
div{
背景:#f00;
高度:400px;
}
.标志{
位置:固定;
排名:0;
左:0;
宽度:100px;
}
.logo.invert{
过滤器:倒置(100%);
}
分区:第n个孩子(偶数){
背景:#ff0;
}


Jagieet非常感谢!!我已经实现了你的代码,它几乎就在那里,但出于某种原因,我的颜色变化是在“活动”div进入视图时触发的,而不是在它到达视口顶部时触发的?任何IDAE?您想更改每个div进入视图时的徽标颜色吗?不,我想在“黑色”类的部分到达视口顶部时更改徽标的颜色。@MintfreshLindfield change
active
class with
black
类谢谢Jagiet,但我已经这样做了,如果你看一下dev链接,你会明白我的意思,当div进入视图时,而不是当它到达视口顶部时,徽标正在改变颜色?