straydogstudio / film_roll

A lightweight jQuery carousel that centers one item at a time on the page.
MIT License
207 stars 60 forks source link

Child divs removed before they have scrolled off the screen #9

Open omundy opened 10 years ago

omundy commented 10 years ago

I have 9 child divs. Clicking a link in the pager, or the next/prev buttons, which would require a significant of amount of scrolling you can see the child div disappear before it has scrolled off the screen. I was going to fork and alter the code but succeeded only in breaking other things so I am reporting it here. Thanks.

straydogstudio commented 10 years ago

I've not had time to work on this. It is definitely an issue and it will have to be remedied. To do it right means the div's from one side need to be replicated to the other before the move, and then have the old dropped after the move. But this invalidates any references to the old div's. I have some code that attempts to find the nearest direction to an element in order to prevent just such an issue. It probably needs to be improved.

bjornmeansbear commented 10 years ago

what if you appended "before" divs and "after" divs that replicates all the starting divs on each "side" of the film strip?

Once a "before" or an "after" gets the "active" class assigned to it, animating of position would be disabled, the active class would then be toggled off the "after" or "before" to the first or last original div (if the first "after" div becomes active, then it's swapped with the first original div — the last "before" element switches to the last original element); re-center the slideshow on the original div without animating (since animation is turned off), then turn the animating back on once that change is complete so that the next "next" or "prev" click slides again…

I have no idea how to do this, but conceptually I think it would work

straydogstudio commented 10 years ago

I've tried a few solutions:

I still think the second solution is the way to go. I am waiting to rewrite the plugin to get a fresh start.

Also, in the meantime, it is very easy to manually duplicate the children when there are too few! Sometimes the manual solution is still the best! :)