Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 23.02.2009, 18:13
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

namez, да, у меня во втором варианте ошибка: $('#'+id) -> $('#'+id)[0]
но ты разберись, как оно раотает, а то мало ли чего я тебе тут насоветовал ;-)
Ответить с цитированием
  #22 (permalink)  
Старый 23.02.2009, 19:14
Аспирант
Отправить личное сообщение для namez Посмотреть профиль Найти все сообщения от namez
 
Регистрация: 21.11.2008
Сообщений: 52

исправил но работает с глюками ведь все равно..
теперь зацикливания нету но остается fadeIn...

да и как без id к картинке обойтись - а если например там в li будет span c бекграундом? то есть конструкция вида <li><a href><span></span></a>

пытаюсь разобраться но пока глюк что-то на глюке у решения зацикливания 8(
Ответить с цитированием
  #23 (permalink)  
Старый 23.02.2009, 21:03
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

да, не учел еще один нюанс
function onMouseEnterLeave( e ) {
 
    var to = { mouseenter: 0.1, mouseleave: 1 };
    if( $.data(this, 'isRunning') ) {
        $.data( this, 'last', e.type );
        return;
    }
    $.data( this, 'isRunning', true );
    $.data( this, 'last', null );
    var id = this.id;
    var type = e.type;
    $(this).fadeTo(500, to[ e.type ], function() {
        var last = $.data($('#'+id)[0], 'last');
        if( last && (type != last) )
            setTimeout( function() {
                $('#'+id).trigger( last );
        }, 0 );
        $.data( $('#'+id)[0], 'isRunning', false );
    });
}
$("a img").bind("mouseenter", onMouseEnterLeave);
$("a img").bind("mouseleave", onMouseEnterLeave);

но стоит задуматься, а надо ли это вообще
Ответить с цитированием
  #24 (permalink)  
Старый 23.02.2009, 21:04
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Цитата:
да и как без id к картинке обойтись - а если например там в li будет span c бекграундом? то есть конструкция вида <li><a href><span></span></a>
ну задашь id для span
Ответить с цитированием
  #25 (permalink)  
Старый 23.02.2009, 22:21
Аспирант
Отправить личное сообщение для namez Посмотреть профиль Найти все сообщения от namez
 
Регистрация: 21.11.2008
Сообщений: 52

да x-yuri теперь все вроде ок! спасибо бальшое =)

насчет задуматься если правильно понял вас:

вот реализация на mootools
http://mmns.ru/files/moo/

cкажите почему такая разница в кол-ве кода?

спасибо за помощь, с уважением Cергей.
Ответить с цитированием
  #26 (permalink)  
Старый 23.02.2009, 23:19
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

можно еще так (без id, заметь)
function onMouseEnterLeave( e ) {
 
    var to = { mouseenter: 0.1, mouseleave: 1 };
    if( $.data(this, 'isRunning') ) {
        $.data( this, 'last', e.type );
        return;
    }
    $.data( this, 'isRunning', true );
    $.data( this, 'last', null );
    var type = e.type;
    $(this).fadeTo(500, to[ e.type ], function() {
        var last = $.data( this, 'last');
        if( last && (type != last) ) {
			var img = this;
            setTimeout( function() {
                $(img).trigger( last );
        	}, 0 );
		}
        $.data( this, 'isRunning', false );
    });
}

а можно так
$("a img").bind("mouseenter", function() {
	$(this).stop().fadeTo(500, 0.1);
});
$("a img").bind("mouseleave", function() {
	$(this).stop().fadeTo(500, 1);
});


или аналог mootools-варианта
$("a img").bind("mouseenter", function() {
	$(this).stop().fadeTo(0, 1).fadeTo(500, 0.1);
});
$("a img").bind("mouseleave", function() {
	$(this).stop().fadeTo(0, 0.1).fadeTo(500, 1);
});

и собственно вопрос: "почему такая разница в количестве кода?" Но в любом случае сравнивать фреймворки надо не по количеству кода одной задачи

Под задуматься я подразумевал, что именно надо: 1) анимации выполняются все и до конца, 2) пропускаются промежуточные анимации, 3) очередное событие прерывает текущую анимацию, 4) очередное событие прерывает текущую анимацию и начинает новую с ее "начала" (mootools-вариант)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не срабатывает hover при использовании в div IE 6.0 AlexMak (X)HTML/CSS 5 14.05.2009 18:26
Проблема со списком jquery Deexus jQuery 3 09.01.2009 21:33
Проблема в document.write при использовании setInterval() GOll Общие вопросы Javascript 21 06.10.2008 17:38
проблема с обработкой DIV nerik AJAX и COMET 2 22.08.2008 17:40
Не отрабатывает событие onmouseout при внедрении нового слоя ilshat Элементы интерфейса 3 28.07.2008 06:27