JQuery Анимация вопроса - PullRequest
       15

JQuery Анимация вопроса

1 голос
/ 18 апреля 2011

У меня здесь странная проблема, и более интересно то, что она отлично работает на jquery версии 1.5.2 и не работает на версии 1.4.3.

Итак, я собираюсь отбросить кусоккод здесь:

$('.slides .items').animate({
    left: number + 'px'
}, 500, 'swing');

Вот элемент HTML:

   <div class = 'slides'>

                <div class = 'items'>

                    <div class = 'item' style = 'background: url(img/slides/slide-1919.jpg) no-repeat;'>

                        <div class = 'nav'>
                            <div class = 'back link' onclick = 'changeSlide(-1);'></div>
                            <div class = 'forward link' onclick = 'changeSlide(1);'></div>
                        </div>

                        <div class = 'title'><span class = 'textBuffer'>1919</span></div>

                        <div class = 'contentTitle'><span class = 'textBuffer'>The first Loblaw <em>Groceterias</em> store opens in Toronto</span></div>

                        <div class = 'content'><span class = 'textBuffer'>The new self-serve, cash-and-carry concept of grocery retailing is a big hit with customers, who take advantage of quality goods at lower prices. Within a decade, the Loblaw chain expands to more than 70 stores in Ontario alone.</span></div>

                    </div>
                                            ........

</div>
</div>

Итак, когда эта number>1000px анимация, кажется, циклически повторяет все элементы, начиная с самого начала, до тех пор, покасобирается встать в правильное положение

Я не уверен, если 1000px создает проблему, или это совпадение.

Кто-нибудь когда-либо видел такую ​​проблему и возможно ли ее исправить?Это.Или я убил этого «одушевленного»?

Спасибо!

1 Ответ

2 голосов
/ 18 апреля 2011

Хорошо, я нашел проблему, это ошибка ядра jQuery, она имеет ограничение на animate, 10000px.

Это легко исправить, просто добавив или изменив эту часть кода:

$.fx.prototype.cur = function(){ // we are overwriting this function to remove limiting of the size of the

    if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) ) {
      return this.elem[ this.prop ];
    }

    var r = parseFloat( jQuery.css( this.elem, this.prop ) );
    return typeof r == 'undefined' ? 0 : r;

}
...