31.08.2012, 17:17
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Баг анимации в Safari
Кодерам на заметку.
Если в параметрах анимации не указывать единицы измерения - в сафари анимация происходит неправильно. Воспроизводится, если изначально CSS-параметр указан в процентах. Пример:
$(document.body)
.css('marginLeft', '-100%')
.animate({
marginLeft: '0'
}, 1000);
Что бы всё было тип-топ, нужно всегда указывать единицы измерения (marginLeft: '0%').
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
|
|
31.08.2012, 18:44
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от B~Vladi
|
Кодерам на заметку.
Если в параметрах анимации не указывать единицы измерения - в сафари анимация происходит неправильно. Воспроизводится, если изначально CSS-параметр указан в процентах. Пример:
$(document.body)
.css('marginLeft', '-100%')
.animate({
marginLeft: '0'
}, 1000);
Что бы всё было тип-топ, нужно всегда указывать единицы измерения (marginLeft: '0%').
|
Версия сафари ?
Версия jQuery?
Пробовали искать "корень зла"?
|
|
31.08.2012, 19:21
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Да, забыл указать.
Safari 5.1.7, воспроизводится под виндой и маком.
jQuery 1.7.1.
Баг явно в jQuery.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
|
|
31.08.2012, 19:50
|
|
Кандидат Javascript-наук
|
|
Регистрация: 19.08.2012
Сообщений: 100
|
|
Не вводите людей в заблуждение. Анимация происходит в процентах только если хоть в одном месте указаны проценты. Если единицы везде не указаны, то анимация по умолчанию измеряется в пикселях.
У меня сафари основной браузер, я бы заметила, если б такой глюк действительно был
|
|
31.08.2012, 20:15
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от LittlePony
|
Не вводите людей в заблуждение. Анимация происходит в процентах только если хоть в одном месте указаны проценты. Если единицы везде не указаны, то анимация по умолчанию измеряется в пикселях.
У меня сафари основной браузер, я бы заметила, если б такой глюк действительно был
|
Т.е. Вы хотите сказать, что баг у Вас не воспроизводится?
... блин, я бы сам проверил ... но у меня нет сафари
B~Vladi, может, Вы сами пофиксите баг \ откроете Issue на гитхабе?
|
|
31.08.2012, 20:30
|
|
Кандидат Javascript-наук
|
|
Регистрация: 19.08.2012
Сообщений: 100
|
|
Сообщение от melky
|
Т.е. Вы хотите сказать, что баг у Вас не воспроизводится?
|
Варианты:
$("element").animate({measure: "100%"})
В этом случае есть баг, и довольно неприятный. И вроде бы не только в сафари, но нужно проверять. Если изменяемое свойство было установлено в пикселях, то оно сначала меняется на столько процентов, сколько пикселей в нём было, и только потом анимируется. То есть, было это свойство установлено в 300px, значит оно сначала станет 300%, и потом санимируется до 100%
$("element").animate({measure: 100})
всё работает корректно. Всё измеряется в пикселях.
|
|
31.08.2012, 21:33
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от melky
|
... блин, я бы сам проверил ... но у меня нет сафари
|
Скачай
Сообщение от melky
|
B~Vladi, может, Вы сами пофиксите баг \ откроете Issue на гитхабе?
|
Боюсь, мой уровень англицкого не даст мне этого сделать, поэтому здесь и написал.
Сообщение от LittlePony
|
Не вводите людей в заблуждение. Анимация происходит в процентах только если хоть в одном месте указаны проценты. Если единицы везде не указаны, то анимация по умолчанию измеряется в пикселях.
|
Какое же это заблуждение? В том то и дело, что изначально свойство установлено в процентах (см. пример в первом посте). При значении 0 не обязательно указывать единицы измерения в CSS, значит и в jQuery должно быть такое поведение. И оно есть везде, кроме сафари, в чём, собственно и баг.
Сообщение от LittlePony
|
всё работает корректно. Всё измеряется в пикселях.
|
Естественно, но здесь речь идёт о процентах.
Сообщение от LittlePony
|
То есть, было это свойство установлено в 300px, значит оно сначала станет 300%, и потом санимируется до 100%
|
Точно, это я и наблюдал. Устанавливается в -100px, затем анимируется.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
|
|
|
|