发文日期:2013年6月30日:
<div class="content" data-id="XX"></div>
<div class="media" data-id="XX"></div>
<div class="content" data-id="XY"></div>
<div class="media" data-id="XY"></div>
etc.
JQuery:
$.fn.isInViewport = function() {
var elementTop = $(this).offset().top +600;
var elementBottom = elementTop + $(this).outerHeight();
var viewportTop = $(window).scrollTop();
var viewportBottom = viewportTop + $(window).height();
return elementBottom > viewportTop && elementTop < viewportBottom;
};
$(window).on('resize scroll', function() {
dataid = $('.sticky-slider-content').data('id');
if ($(dataid).isInViewport()) {
$('.media').removeClass('active');
$('.media[data-id="'+dataid+'"]').addClass('active');
}
});
这位媒体人士开始变得粘人.当内容进入视区时,我想给具有相同data-id的媒体一个‘活动’类.
最初我想出了这个,但我想避免重复:
$(window).on('resize scroll', function() {
if ($('.content[data-id="3a241cb2"]').isInViewport()) {
$('.media').removeClass('active');
$('.media[data-id="3a241cb2"]').addClass('active');
}
if ($('.content[data-id="6a91e7bb"]').isInViewport()) {
$('.media').removeClass('active');
$('.media[data-id="6a91e7bb"]').addClass('active');
}
});