Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.01.2013, 14:07
Аватар для Vdomah
Интересующийся
Отправить личное сообщение для Vdomah Посмотреть профиль Найти все сообщения от Vdomah
 
Регистрация: 30.12.2012
Сообщений: 29

animate проблема в Chrome и FF
Продолжаю работать над Lavalamp menu (эта тема: lavalamp menu нужно доработать)

Там эффект перетекания эл-та 'div.floatr' реализовывался с помощью css3. Теперь, оптимизируя под IE, делаю с помощью animate.

Было так:
$('.lavalamp li').hover(function(){
 
        var left = $(this).offset().left - $('.lavalamp li.active').offset().left;

        var width = $(this).width() + "px";
        var sictranslate = "translate("+left+"px, 0px)";
 
        $(this).parent('ul').next('div.floatr').css({
            "width": width,
            "-webkit-transform": sictranslate,
            "-moz-transform": sictranslate
        });

Добился чтобы красиво работало в ИЕ9:
$('.lavalamp li').hover(function(){
 
        var left = $(this).offset().left - $('.lavalamp li.active').offset().left;
        var width = $(this).width() + "px";

        $('div.floatr')
			.css({"width": width,})
			.stop(true)
			.animate({left: left}, 500);

Но возникли траблы:
- в Chrome 'div.floatr' ползет в нужном направлении, но в начале движения появляется задержка, т.е. он как бы долго разгоняется, при чем, если водить по пунктам меню, то задержка расчехляется вообще медленно, т.е. получается накапливается

- в FF вообще сбилось позиционирование. Т.е. есть 6 пунктов меню. Если активен 1й - все ок. Активен 2й - 'div.floatr' при наведении переезжает, но "промахивается" на 1 пункт влево от нужного. Активен 3й - на 2 пункта от нужного и тд.

- решил еще в Safari загнать: почти тоже, что и в Хроме, но начального торможения нет, а движение происходит правильно, но начинается после небольшой задержки. И в Опере тоже самое.
Плиз хелп))

Последний раз редактировалось Vdomah, 29.01.2013 в 14:56.
Ответить с цитированием
  #2 (permalink)  
Старый 29.01.2013, 14:58
Аватар для Vdomah
Интересующийся
Отправить личное сообщение для Vdomah Посмотреть профиль Найти все сообщения от Vdomah
 
Регистрация: 30.12.2012
Сообщений: 29

Пока решил с помощью if($.browser.тратата). Но хотелось бы все-таки понять почему animate такие результаты разные выбрасывает.

Но проблема с начальным торможением еще актуальна

Последний раз редактировалось Vdomah, 29.01.2013 в 15:42.
Ответить с цитированием
  #3 (permalink)  
Старый 29.01.2013, 15:49
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

я не замечал никаких торможений.
Где потыкать можно ?
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Ответить с цитированием
  #4 (permalink)  
Старый 29.01.2013, 19:08
Аватар для Vdomah
Интересующийся
Отправить личное сообщение для Vdomah Посмотреть профиль Найти все сообщения от Vdomah
 
Регистрация: 30.12.2012
Сообщений: 29

Извини, пока не могу закинуть, скоро выложу на хост.

Проблема в итоге вылезла такая. Во всех браузерах норм с помощью того же CSS3, IE9 выделывает то, что раньше FF:
Цитата:
Т.е. есть 6 пунктов меню. Если активен 1й - все ок. Активен 2й - 'div.floatr' при наведении переезжает, но "промахивается" на 1 пункт влево от нужного. Активен 3й - на 2 пункта от нужного и тд.
if($.browser.webkit || $.browser.mozilla || $.browser.opera){
var sictranslate = "translate("+left+"px, 0px)";
	$(this).parent('ul').next('div.floatr').css({
		"width": width,
		"-webkit-transform": sictranslate,
		"-moz-transform": sictranslate
	});
	}else{
	
	$(this).parent('ul').next('div.floatr')
				.css({"width": width,})
				.stop(true)
				.animate({left: left }, 300);
	}

При чем, в обоих случаях используется один и тот же параметр left. Или transform работает не так как animate или IE не так считает offset() как другие браузеры, или что еще?

Последний раз редактировалось Vdomah, 29.01.2013 в 19:28.
Ответить с цитированием
  #5 (permalink)  
Старый 29.01.2013, 20:04
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Цитата:
Извини, пока не могу закинуть,
Извини пока не могу помочь
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Chrome и IE не видят переменную внутри animate. Broken jQuery 3 24.11.2012 03:20
Проблема с onended для chrome С.Тарасов Events/DOM/Window 14 21.05.2012 18:55
Проблема с setTimeout при первой загрузке в Chrome slobodchuk jQuery 1 17.02.2012 02:16
Проблема с Confirm, jQuery animate в Chrome dimonrus66 jQuery 4 08.10.2011 16:54
проблема с div И animate g00000dman jQuery 2 24.03.2011 23:34