これは他のバリエーションのバリエーションです。.js-visible
をDOMの任意の要素に割り当て、表示されている場合にのみ.visible
クラスに割り当てます。クラスがあるセクションが表示されているかどうかを確認するjQuery
すべての要素が同じクラス名を使用しているので、難しい部分です.js-visible
私はクラス.visible
を可視要素に割り当て、同じクラス名を持つ他のすべてのDOM要素を無視する必要があります。それが見えたともはやない場合、クラス名.visible
<style>
.visible {
background: green;
}
</style>
<div class="js-visible" style="height:800px">I am 1st</div>
<div class="js-visible" style="height:800px">I am 2nd</div>
<div class="js-visible" style="height:800px">I am 3rd</div>
<div class="js-visible" style="height:800px">I am 4th</div>
これを削除したい
$(window).scroll(function() {
var hT = $('.js-visible').offset().top,
hH = $('.js-visible').outerHeight(),
wH = $(window).height(),
wS = $(this).scrollTop();
if (wS > (hT+hH-wH) && (hT > wS) && (wS+wH > hT+hH)){
$('.js-visible').addClass('visible')
} else {
$('.js-visible').removeClass('visible')
}
});
任意の提案として機能していませんか?