I’ve managed to get this far and it works great for solid width divs but can’t work out how to manipulate it to work when the width of the div changes.
Question: How do I make this function take into account the different div widths after each ’round’?
var horizontalScroller = function($elem) {
var left = parseInt($elem.css("left"));
var temp = -1 * $('#horizontalScroller li').width();
if(left < temp) {
left = $('#horizontalScroller').width();
$elem.css("left", left);
}
$elem.animate({ left: (left-60) }, 2000, 'linear', function () {
horizontalScroller($(this));
});
}
$(document).ready(function() {
var i = 0;
$("#horizontalScroller li").each(function () {
$(this).css("left", i);
i += $(this).width();
horizontalScroller($(this));
});
});
Working example (with fixed width): http://jsfiddle.net/GL5V3/
Working example (with different widths): http://jsfiddle.net/wm9gt/
Well this was mildly fun, understood how your code works, but before I did that…
I rewritten it to this: (working fiddle)
Then I went back to your code and did this:
If you’ve got questions or want to tweak it a bit. I’d be happy you to help you along. But my hopes are that you will manage on your own.
P.S. My initial comment was rude, you’re horizontal scrolling is ok thumbs up (but you were hoping the values for some of those
.width()calls to be way different)