https://plnkr.co/edit/9oAmucEO0yvYDJJi8tGK?p=previewWie man aktive Klasse nur eine li mit jquery hinzufügen?
Hallo Ich füge aktive Klasse auf Fußzeile während scrolling.Actually Wenn der Benutzer scrollen es div
überprüfen kommen, ist Ansichtsfenster, wenn ja er in footer.But Zu einem bestimmten Zeitpunkt aktiv Klasse hinzufügen, wenn zwei divs in Ansichtsfenster s zwei sind Artikel ausgewählt .Aber ich brauche nur ein Element slected ist .IS ein jedes Ereignis will check
div in viewport or
exit` in Ansichtsfenster eingeben .Wenn ich das dann bekam ich in der Lage bin wählen nur ein Element in der Fußzeile
$(function() {
$("#container").scroll(function() {
console.log('scrolling');
$('#container > div').each(function (i, left) {
console.log(this)
console.log($(this))
var md = $(this).attr('data-msid');
console.log($(this).isOnScreen())
if($(this).isOnScreen()){
$('.fC li[data-msidatrr='+md+']').addClass('active');
}else {
$('.fC li[data-msidatrr='+md+']').removeClass('active');
}
})
});
$.fn.isOnScreen = function() {
var win = $(window);
var viewport = {
top: win.scrollTop(),
left: win.scrollLeft()
};
viewport.right = viewport.left + win.width();
viewport.bottom = viewport.top + win.height();
var bounds = this.offset();
bounds.right = bounds.left + this.outerWidth();
bounds.bottom = bounds.top + this.outerHeight();
return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom));
}
})
Wie möchten Sie bestimmen, welche der Elemente sollte die 'active' Klasse-Namen haben; der letzte, der das Ansichtsfenster betritt, das Element mit dem größten Prozentsatz des Darstellungsbereichs, eine andere Metrik? –