2013-09-09 2 views
1

У меня возникла проблема с div, который я пытаюсь оживить. В mozilla, когда я запускаю код ниже, я получаю анимацию #nav div от нижней части страницы до верхней части страницы. Когда я запускаю тот же код в хром или сафари, он перескакивает в верхнюю часть окна браузера и анимирует вниз на 52 пикселя. Вы знаете, почему это происходит?jQuery анимационная проблема chrome vs mozilla

$("#nav").animate({'top': 52}, 2000); 

#nav ДИВ

position:absolute; 
bottom:-70px; 

первое OnClick событие вызывает его частичное появление в нижней части страницы. 2nd onclick запускает его, чтобы перейти от нижней части страницы к верхней части страницы.

+0

У вас есть элемент 'top' на вашем элементе изначально? –

+0

Нет. Позвольте мне попробовать установить верх. – ocat

+0

У меня он установлен в положение: абсолютное; снизу: -70px; потому что он анимируется из нижней части страницы в onclick. – ocat

ответ

2

Это похоже на то, что вы анимации top элемента, который не имеет набора top. Вы можете обойти эту проблему, установив top перед одушевленным:

var $this = $("#nav"); 

$this.css("top", $this.position().top); 
$(this).animate({"top": 0}, 1000); 

http://jsfiddle.net/zmrC5/

EDIT: Различие связано с различными результатами браузеры возвращают при проверке значения элемента top, который не имеет верхнего множества. Вы можете увидеть это с этой скрипкой:

http://jsfiddle.net/zmrC5/1/

Chrome вернется «авто», тогда как светлячок возвращает вычисленное верхнее значение.

+0

Спасибо, Джеймс. Это сработало. – ocat

+0

Спасибо за jsfiddle для проверки. – ocat

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