Können Sie mir bitte sagen, wie Sie eine aktive Klasse hinzufügen, während Sie in einem div scrollen? Ich habe einen Container, in dem es vier Divs gibt. In der Fußzeile habe ich auch vier li
(erste, zweite, dritte). Ich möchte die li
auswählen, wenn der Benutzer das div scrollt.Wie füge ich aktive Klasse beim Scrollen in div hinzu?
Beispiel
Wenn der Code ausgeführt wird, sollte die erste li
da gewählt werden, das erste div im Hafen Ansicht ist. Wenn der Benutzer scrollt und sich zum zweiten Div bewegt, sollte der zweite li
ausgewählt werden. Und so weiter.
habe ich versucht, wie die
https://jsbin.com/giwizufotu/edit?html,css,js,output
(function(){
'use strict';
$(function(){
$("#container").scroll(function() {
console.log('scrlling');
if (elementInViewport2($('#first'))) {
// The element is visible, do something
console.log('first visible')
} else {
console.log('second visible')
}
});
})
function elementInViewport2(el) {
var top = el.offsetTop;
var left = el.offsetLeft;
var width = el.offsetWidth;
var height = el.offsetHeight;
while(el.offsetParent) {
el = el.offsetParent;
top += el.offsetTop;
left += el.offsetLeft;
}
return (
top < (window.pageYOffset + window.innerHeight) &&
left < (window.pageXOffset + window.innerWidth) &&
(top + height) > window.pageYOffset &&
(left + width) > window.pageXOffset
);
}
})()
Ich will nicht Plugin verwenden
mit welchem Problem konfrontiert Sie? –
es ist nicht die Auswahl der unteren li, wenn Benutzer scroll – user944513