[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Условие для fadeIn
RCuPeR
В общем, есть такая штука:
два блока, при наведении на первый, с таймаутом появляется второй блок, соответственно, когда я убираю фокус с первого блока - второй блок прячется.

Чудесно работает :huh:

Но, тут одна проблемка: нельзя выводить второй блок, если пользователь случайно навел на первый блок.
Т.е, нужно, что бы второй блок выводился при условии если пользователь держит фокус на объекте более n милисекунд. Как сие можно сделать ?

Вот, на всякий случай код:
Свернутый текст
        var bIn = 1;
var bOut = 1;

if( bIn == 1 ){
$("#display_user_for_feed_123").hover(function()
{
if ( bIn == 1 )
{
bIb = 0;
{
$("#list_like_user_123").animate({opacity: '+=0'}, "slow").fadeIn(700, function(){ bIn = 1; })
}
}
}
,
function()
{
if ( bOut == 1 )
{
bOut = 0;
$("#list_like_user_123").fadeOut(150, function(){ bOut = 1; });
}
}
);
}




Спустя 43 минуты, 25 секунд (18.01.2012 - 19:22) nugle написал(а):
я не вижу тут таймаута
Суть в том, что после таймаута вызываете функцию, при событии mouseout очищаете таймаут

Спустя 1 час, 4 минуты, 52 секунды (18.01.2012 - 20:26) RCuPeR написал(а):
Цитата (nugle @ 18.01.2012 - 16:22)
я не вижу тут таймаута
Суть в том, что после таймаута вызываете функцию, при событии mouseout очищаете таймаут

.animate({opacity: '+=0'}, "slow")

Это и есть таймаут.

Не совсем понял.
Я думал сделать так:
создаю переменную, например var TimeHover = 0;, далее, когда принят фокус объекта увеличивать переменную на 1 при каждой миллисекунде удержки фокуса. Потом делать проверку: if(TimeHove > 1000) { вызвать мой код }
Но, тут не представляю как увеличить переменную на 1 миллисекунду.

Спустя 22 минуты, 9 секунд (18.01.2012 - 20:49) nugle написал(а):
RCuPeR
мда.
давал же ссылку на settimeout, как у нее синтаксис выглядит, напиши мне

Спустя 5 минут, 5 секунд (18.01.2012 - 20:54) RCuPeR написал(а):
Цитата (nugle @ 18.01.2012 - 17:49)
RCuPeR
мда.
давал же ссылку на settimeout, как у нее синтаксис выглядит, напиши мне

Мне этот способ показался лучшим.

"как у нее синтаксис выглядит, напиши мне" - у кого ? SetTimeOut ?

Спустя 2 минуты, 12 секунд (18.01.2012 - 20:56) nugle написал(а):
RCuPeR
показался? надо искать решения. да у settimeout. напиши

Спустя 7 минут, 20 секунд (18.01.2012 - 21:03) RCuPeR написал(а):
Что-то я тебя не понимаю, вот примеры setTimeOut. Но не о нем сейчас речь идет.
Мне нужно сделать этот счетчик.

Спустя 10 минут, 13 секунд (18.01.2012 - 21:13) nugle написал(а):
Ладно, объясню по другому
синтаксис settimeout

timeout_id = window.setTimeout(func|code, delay)

func|code - это твоя функция, т.е. к примеру




var bIn = 1;
var bOut = 1;

if( bIn == 1 ){
$("#display_user_for_feed_123").hover('jscode()');
function jscode()
{
if ( bIn == 1 )
{
bIb = 0;
{
$("#list_like_user_123").animate({opacity: '+=0'}, "slow").fadeIn(700, function(){ bIn = 1; })
}
}
}
,
function()
{
if ( bOut == 1 )
{
bOut = 0;
$("#list_like_user_123").fadeOut(150, function(){ bOut = 1; });
}
}
);
}


при помощи settimeout ты ее вызываешь
timeout_id = window.setTimeout(jscode(), 1000);
дальше, тебе нужно сбросить сеттаймоут, если пользователь уберет курсор раньше времени, получается так
$('#pole').mouseout(function(){clearTimeout(timeoutId);
})


Спустя 9 минут, 34 секунды (18.01.2012 - 21:23) RCuPeR написал(а):
Ага, алгоритм понял !
Завтра утром попробую - отпишу об успехах !
Спасибо больше + в карму !

Спустя 44 минуты, 17 секунд (18.01.2012 - 22:07) asokol написал(а):
var timer=0;
$("#display_user_for_feed_123").hover(function() {
timer = setTimeout(function() {
$("#list_like_user_123").fadeIn(700);
}, 2000);
}, function() {
clearTimeout(timer);
$("#list_like_user_123").fadeOut(150);
});

http://javascript.ru/setTimeout
http://api.jquery.com/hover/
http://api.jquery.com/fadeIn/
http://api.jquery.com/fadeOut/

P.S: работоспособность не проверял.

Спустя 7 минут, 44 секунды (18.01.2012 - 22:15) RCuPeR написал(а):
Хм...Очень интересно ! Обязательно попробую, но, только завтра sad.gif

Свернутый текст
Плюсанул в карму за активность wink.gif

Спустя 16 часов, 5 минут, 54 секунды (19.01.2012 - 14:21) nugle написал(а):
asokol
$("#list_like_user_123").fadeOut(150);

Вот смотри. Для чего это?
для того, чтобы после уведения курсора с области элемент скрывался. А к примеру его нет, что скрывать? нечего, не знаю вызовет ошибку или нет, но лишний раз дергать библиотеку зачем? нужно для каждого события ставить свои функции


_____________
Гнусный социопат с комплексом Бога.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.