ウェブサイトの異なる部分が重複している場合、固定ナビゲーションの色を変更しようとしています。 このウェブサイトのナビゲーションとよく似ています:http://andpizza.com/jqueryが複数のセクションを重複して検出する
私のHTMLはdivとセクションに存在します。
<nav>
<ul>
<li class="work">Work</li>
<li class="about">About</li>
<li class="contact">Contact</li>
</nav>
<div id="red">
</div>
<section id="green">
</section>
<div id="blue">
</div>
<section id="yellow">
</section>
JSの場合、私はoverlaps libraryをgithubで見つけました。
このjQueryの私は自分自身を追加しました:
$(document).scroll(function() {
var contactColl = $('ul li.contact').overlaps('section');
$('ul li.contact')[contactColl.hits.length? 'addClass' : 'removeClass']('white');
var aboutColl = $('ul li.about').overlaps('section');
$('ul li.about')[aboutColl.hits.length? 'addClass' : 'removeClass']('white');
var workColl = $('ul li.work').overlaps('section');
$('ul li.work')[workColl.hits.length? 'addClass' : 'removeClass']('white');
});
またはビューhere on Codepen。
最初のセクションでは完全に機能します。しかし、それは第2セクションを無視する。 の最初のセクションが選択されていますが、他のセクション()で動作させる方法を理解できません。
var contactColl = $('ul li.contact').overlaps('#green');
$('ul li.contact')[contactColl.hits.length? 'addClass' : 'removeClass']('white');
var contactColl2 = $('ul li.contact').overlaps('#yellow');
$('ul li.contact')[contactColl2.hits.length? 'addClass' : 'removeClass']('white');
var contactColl = $('ul li.contact').overlaps('#green, #yellow');
または
これはちょうど、すべてを壊した:私はこのような個別のセクションに名前を付けてみました。
誰でも私にこれを手伝ってもらえますか?
?私はそれを持っているので、1つのセクションに1つの李、それは魅力のように動作します。 https://jsfiddle.net/ofvug4nk/ –
これは読みやすさの問題です。このウェブサイトは、大きな画像と白いセクションが交互に現れる1ページのウェブサイトです。画像を重ねるときは、すべてのメニュー項目が白でなければなりません。白い部分を重ねるときは、すべてのメニュー項目が黒くなります。例:http://andpizza.com/ –
このオーバーラッププラグインでは、http://prntscr.com/ba7tx4で重複する複数のオブジェクトは考慮されません。今それは期待どおりに動作しますhttps://jsfiddle.net/ofvug4nk/1/ –