2011-04-17 2 views
1

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

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

$('.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, или это совпадение.

Был ли кто-нибудь когда-либо видел такую ​​проблему, и если это можно исправить. Или я убил этот «живой»?

Спасибо!

+0

Если она отлично работает на 1.5.2, почему вы пытаетесь разработать для старых версий? – wdm

+0

Я не могу обновить до 1.5.2, в моем случае я должен использовать более старую версию – AlexC

+0

@alexander, я не думаю, что есть какая-либо проблема с версией jquery, в основном это проблема с вашим html или кодом ... разместите свой html также – kobe

ответ

2

Хорошо, я нашел проблему, это ошибка ядра jQuery, у нее есть ограничение на анимацию, 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; 

} 
Смежные вопросы