два блока, при наведении на первый, с таймаутом появляется второй блок, соответственно, когда я убираю фокус с первого блока - второй блок прячется.
Чудесно работает :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 очищаете таймаут
Суть в том, что после таймаута вызываете функцию, при событии 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, как у нее синтаксис выглядит, напиши мне
мда.
давал же ссылку на 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. напиши
показался? надо искать решения. да у 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 - это твоя функция, т.е. к примеру
при помощи settimeout ты ее вызываешь
timeout_id = window.setTimeout(jscode(), 1000);
дальше, тебе нужно сбросить сеттаймоут, если пользователь уберет курсор раньше времени, получается так
$('#pole').mouseout(function(){clearTimeout(timeoutId);
})
синтаксис 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 написал(а):
Хм...Очень интересно ! Обязательно попробую, но, только завтра

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

Спустя 16 часов, 5 минут, 54 секунды (19.01.2012 - 14:21) nugle написал(а):
asokol
Вот смотри. Для чего это?
для того, чтобы после уведения курсора с области элемент скрывался. А к примеру его нет, что скрывать? нечего, не знаю вызовет ошибку или нет, но лишний раз дергать библиотеку зачем? нужно для каждого события ставить свои функции
$("#list_like_user_123").fadeOut(150);
Вот смотри. Для чего это?
для того, чтобы после уведения курсора с области элемент скрывался. А к примеру его нет, что скрывать? нечего, не знаю вызовет ошибку или нет, но лишний раз дергать библиотеку зачем? нужно для каждого события ставить свои функции
_____________
Гнусный социопат с комплексом Бога.