He visto varias soluciones que determinan cuándo un elemento es visible en la ventana mientras se desplaza por la página, pero no he visto ninguna que haga esto para los elementos que están contenidos en un contenedor de desplazamiento div
como en el ejemplo aquí.HTML ¿cómo saber qué elementos son visibles?
¿Cómo puedo detectar los elementos a medida que se desplazan a la vista a través de la div deslizante? Y, por el contrario, ¿cómo los detectaría si se perdieran de vista? En todos los casos, los elementos de desbordamiento no están ocultos desde el principio.
HTML
<div id="mainContainer" class="main">
<div id="scrollContainer"class="scroller">
<div id="picturesContainer"class="holder">
<div id="pictureContainer1" class="picture position1">
pictureContainer1</div>
<div id="pictureContainer2" class="picture position2">
pictureContainer2</div>
<div id="pictureContainer3" class="picture position3">
pictureContainer3</div>
<div id="pictureContainer4" class="picture position4">
pictureContainer4</div>
<div id="pictureContainer5" class="picture position5">
pictureContainer5</div>
<div id="pictureContainer6" class="picture position6">
pictureContainer6</div>
<div id="pictureContainer7" class="picture position7">
pictureContainer7</div>
<div id="pictureContainer8" class="picture position8">
pictureContainer8</div>
<div id="pictureContainer9" class="picture position9">
pictureContainer9</div>
</div>
</div>
</div>
CSS
.main{
position:absolute;
top:0px;
left:0px;
height: 200px;
width:200px;
background-color: grey;
border: 1px solid black;
}
.scroller{
position:absolute;
top:0px;
left:0px;
height: 250px;
width:250px;
background-color: lightblue;
border: 1px solid black;
overflow: scroll;
}
.picture{
position:absolute;
height: 200px;
width: 200px;
background-color: lightyellow;
border: 1px solid black;
}
.position1{
top:0px;
left:0px;
}
.position2{
top:0px;
left:200px;
}
.position3{
top:0px;
left:400px;
}
.position4{
top:200px;
left:0px;
}
.position5{
top:200px;
left:200px;
}
.position6{
top:200px;
left:400px;
}
.position7{
top:400px;
left:0px;
}
.position8{
top:400px;
left:200px;
}
.position9{
top:400px;
left:400px;
}
.holder{
position:absolute;
top:0px;
left:0px;
width:600px;
height:600px;
background-color:lightgreen;
}
Esto parece funcionar una vez que un objeto es completamente visible. Esto es mucho para seguir, gracias Igor. He puesto el código [aquí] (http://jsfiddle.net/PSjBN/54/) si alguien quiere verlo funcionar. Trabajaré más adelante sobre esto y también lo actualizaré. – T9b