Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.08.2012, 17:17
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Баг анимации в Safari
Кодерам на заметку.
Если в параметрах анимации не указывать единицы измерения - в сафари анимация происходит неправильно. Воспроизводится, если изначально CSS-параметр указан в процентах. Пример:

$(document.body)
	.css('marginLeft', '-100%')
	.animate({
		marginLeft: '0'
	}, 1000);


Что бы всё было тип-топ, нужно всегда указывать единицы измерения (marginLeft: '0%').
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #2 (permalink)  
Старый 31.08.2012, 18:44
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от B~Vladi Посмотреть сообщение
Кодерам на заметку.
Если в параметрах анимации не указывать единицы измерения - в сафари анимация происходит неправильно. Воспроизводится, если изначально CSS-параметр указан в процентах. Пример:

$(document.body)
	.css('marginLeft', '-100%')
	.animate({
		marginLeft: '0'
	}, 1000);


Что бы всё было тип-топ, нужно всегда указывать единицы измерения (marginLeft: '0%').
Версия сафари ?
Версия jQuery?

Пробовали искать "корень зла"?
Ответить с цитированием
  #3 (permalink)  
Старый 31.08.2012, 19:21
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Да, забыл указать.

Safari 5.1.7, воспроизводится под виндой и маком.
jQuery 1.7.1.

Баг явно в jQuery.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #4 (permalink)  
Старый 31.08.2012, 19:50
Аватар для LittlePony
Кандидат Javascript-наук
Отправить личное сообщение для LittlePony Посмотреть профиль Найти все сообщения от LittlePony
 
Регистрация: 19.08.2012
Сообщений: 100

Не вводите людей в заблуждение. Анимация происходит в процентах только если хоть в одном месте указаны проценты. Если единицы везде не указаны, то анимация по умолчанию измеряется в пикселях.
У меня сафари основной браузер, я бы заметила, если б такой глюк действительно был
Ответить с цитированием
  #5 (permalink)  
Старый 31.08.2012, 20:15
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от LittlePony Посмотреть сообщение
Не вводите людей в заблуждение. Анимация происходит в процентах только если хоть в одном месте указаны проценты. Если единицы везде не указаны, то анимация по умолчанию измеряется в пикселях.
У меня сафари основной браузер, я бы заметила, если б такой глюк действительно был
Т.е. Вы хотите сказать, что баг у Вас не воспроизводится?

... блин, я бы сам проверил ... но у меня нет сафари

B~Vladi, может, Вы сами пофиксите баг \ откроете Issue на гитхабе?
Ответить с цитированием
  #6 (permalink)  
Старый 31.08.2012, 20:30
Аватар для LittlePony
Кандидат Javascript-наук
Отправить личное сообщение для LittlePony Посмотреть профиль Найти все сообщения от LittlePony
 
Регистрация: 19.08.2012
Сообщений: 100

Сообщение от melky Посмотреть сообщение
Т.е. Вы хотите сказать, что баг у Вас не воспроизводится?
Варианты:
$("element").animate({measure: "100%"})

В этом случае есть баг, и довольно неприятный. И вроде бы не только в сафари, но нужно проверять. Если изменяемое свойство было установлено в пикселях, то оно сначала меняется на столько процентов, сколько пикселей в нём было, и только потом анимируется. То есть, было это свойство установлено в 300px, значит оно сначала станет 300%, и потом санимируется до 100%


$("element").animate({measure: 100})

всё работает корректно. Всё измеряется в пикселях.
Ответить с цитированием
  #7 (permalink)  
Старый 31.08.2012, 21:33
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от melky
... блин, я бы сам проверил ... но у меня нет сафари
Скачай

Сообщение от melky
B~Vladi, может, Вы сами пофиксите баг \ откроете Issue на гитхабе?
Боюсь, мой уровень англицкого не даст мне этого сделать, поэтому здесь и написал.

Сообщение от LittlePony
Не вводите людей в заблуждение. Анимация происходит в процентах только если хоть в одном месте указаны проценты. Если единицы везде не указаны, то анимация по умолчанию измеряется в пикселях.
Какое же это заблуждение? В том то и дело, что изначально свойство установлено в процентах (см. пример в первом посте). При значении 0 не обязательно указывать единицы измерения в CSS, значит и в jQuery должно быть такое поведение. И оно есть везде, кроме сафари, в чём, собственно и баг.

Сообщение от LittlePony
всё работает корректно. Всё измеряется в пикселях.
Естественно, но здесь речь идёт о процентах.

Сообщение от LittlePony
То есть, было это свойство установлено в 300px, значит оно сначала станет 300%, и потом санимируется до 100%
Точно, это я и наблюдал. Устанавливается в -100px, затем анимируется.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение смещения в момент анимации. 0931454574 jQuery 6 13.05.2011 09:55
Очередной баг jQuery? monolithed jQuery 8 27.01.2011 10:16
Chrome, Safari и размер view-порта с абсолютно позиционируемыми элементами uonax Opera, Safari и др. 10 29.06.2010 22:57
Забавный баг (фича?) в Chrome / Safari Cr@ZyBoY Opera, Safari и др. 11 22.02.2010 17:26
Баг с jpeg в ie6 JsLoveR Элементы интерфейса 20 28.01.2010 20:57