【发布时间】:2017-11-02 22:37:49
【问题描述】:
这是其他主题的变体,其想法是将.js-visible 分配给DOM 中的任何元素,并且仅在可见时为其分配.visible 类。
棘手的部分是,由于所有元素都使用相同的类名.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')
}
});
有什么建议吗?
【问题讨论】:
标签: javascript jquery html css frontend