我一直在尝试使用一个函数来检测一个元素是否在视口中:
function isElementInViewport (el) {
var rect = el[0].getBoundingClientRect();
return (rect.top>-1 && rect.bottom <= $(window).height());
}
var s= $('.special'),
y = $('.status');
$(window).on('scroll resize', function(){
if(isElementInViewport(s))
{
setTimeout(function(){
if(isElementInViewport(s))
{
var offer_id = s.data("offer-id");
alert(offer_id);
y.text('Yes');
}
}, 3000);
}
else
{
y.text('No');
}
});
不幸的是,这似乎只适用于“特殊”类的第一个实例。如何让它适用于该类的所有实例?
请注意,我添加了 3 秒延迟,以防止快速滚动触发它。
这是我进步的 jsfiddle:http: //jsfiddle.net/azjbrork/6/