Остановить динамическую ширину DIV от анимации за его краями

У меня есть DIV, который содержит различное количество элементов из базы данных. Я установил для DIV анимацию плюс/минус 894 пикселя от его текущей позиции при нажатии кнопок «следующая/предыдущая». Теперь я пытаюсь помешать ему анимировать за 0px или за последним дочерним элементом, но я изо всех сил пытаюсь заставить его работать без использования DIV с фиксированной шириной. Кто-нибудь знает решение? Спасибо

http://jsfiddle.net/Drennan/mMMfn/

$('#right').each(
    function(){
        $(this).bind (
            "click",
            function(event){
                $('#inner').animate(
                    {left:"-=894px"}, {
                        duration:'slow',
                        easing:'swing'
                });
            }
        );
    }
);

$('#left').each(
    function(){
        $(this).bind (
            "click",
            function(event){
                $('#inner').animate(
                    {left:"+=894px"}, {
                        duration:'slow',
                        easing:'swing'
                });
            }
        );
    }
);



});

person Richard    schedule 05.11.2013    source источник


Ответы (1)


Я немного поиграл с вашим JSFiddle.

Это то, что вы хотите сделать? http://jsfiddle.net/2cmNf/

Я добавил оператор if в функцию «следующий», чтобы проверить, собирается ли последний элемент #inner div исчезнуть с экрана.

if ($('#inner').position().left + $('#inner').width() > 294) { //animate it to move left }

else { //do nothing, or maybe you could grey out the next button if there are no more items. Whatever you want. }

person Jenna R    schedule 05.11.2013