Sie müssen überprüfen, wann immer das Fenster gescrollt wird, wenn eines der Elemente weniger als 200px
vom oberen Teil des Ansichtsfensters ist.
Um die vertikale Versatzposition jedes Elements relativ zum Ansichtsfenster zu bestimmen, können Sie die vertikale Fensterposition des Fensters ($(window).scrollTop
) von der vertikalen Versatzposition jedes Elements relativ zum Dokument (.offset().top
) subtrahieren.
dh.var offsetTopPosition = $(ELEMENT).offset().top - $(window).scrollTop();
Arbeitsbeispiel:
$(document).ready(function(){
$(window).scroll(function(){
$('div').each(function(){
\t var offsetTopPosition = $(this).offset().top - $(window).scrollTop();
\t if (offsetTopPosition < 100) {
$(this).addClass('active');
\t }
\t if (offsetTopPosition > 100) {
$(this).removeClass('active');
\t }
});
});
});
div {
width: 36px;
height: 36px;
line-height: 36px;
margin-bottom: 200px;
color: rgb(0,0,0);
background-color: rgb(191,191,191);
font-size: 24px;
font-weight: bold;
text-align: center;
}
.active {
background-color: yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="active">1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
Perfect, ist es möglich, wenn für andere oben und dieselbe zweite Feld Reichweite 2.e Box bgcolor, wenn die 1. Box Reichweite oben und ändern bgcolor drittes Feld zu ändern? – InsightCoders
Ich tat dies auf komplexe Weise. Sie können hier sehen (http://demo.axistheme.com/methodology/Wakeup-Method.html). Ich möchte einfachen Code. – InsightCoders
@AxisTheme - Ich bin sicher, Sie verstehen, dass Sie Ihren eigenen Code schreiben müssen. Sie verwenden diese Website, um nach Ansätzen zu fragen. Es ist keine Seite, wo Leute deine Hausaufgaben für dich machen. Sie haben genug in der obigen Lösung, um Ihre eigene Lösung zu schreiben. Du kannst es schaffen. Viel Glück! – Rounin