2015-10-22 2 views
2

На моем сайте всплывающее это появилось на странице загрузки, я не имею три условия:Скрыть DIV после 15 секунд в отведении указателя мыши

  1. После загрузки страницы, если нет каких-либо действий на всплывающих DIV в пределах 15 секунд, то он будет скрыт автоматически.
  2. После загрузки страницы, если мышь вышла из всплывающего div, тогда div будет скрываться после 15 секунд выключения мыши.
  3. После загрузки страницы, если мышь находится во всплывающем окне, всплывающее окно не будет скрываться до мышки.

код:

$(document).ready(function() { 
    // Action on mouseover from pop-up 
    $('#activity').on("mouseover", function(e) { 
     ('#activity').show(); 
    }); 

    // Action on mouseout from pop-up 
    $('#activity').on("mouseout", function() { 
     setTimeout(function() { $("#activity").fadeOut(1500); }, 15000); 
    }); 
setTimeout(function() { $("#activity").fadeOut(1500); }, 15000) 
}) 
+2

в чем проблема с вашим кодом сейчас? –

+0

на mouseover мое всплывающее окно стало скрываться после 15 секунд загрузки страницы. –

+0

Удалить последнюю строку в '$ (document) .ready' ie' setTimeout (function() {$ ("# activity"). FadeOut (1500); }, 15000) ' –

ответ

8

Просто с помощью .Show функции() не остановит функцию тайм-аута, которую вы вызвали. Вам нужно очистить функцию таймаута при наведении курсора мыши.

Это установит таймаут на переменную с именем timeout, когда страница загрузится, или сбросьте ее при запуске мыши. Если вы наведите курсор мыши на активность, то, что функция тайм-аут будет сброшен (отменен) и перезапущен при mouseoff

$(document).ready(function() { 

    var timeout; 

    // Action on mouseover from pop-up 
    $('#activity').on("mouseover", function(e) { 
     clearTimeout(timeout); 
    }); 

    // Action on mouseout from pop-up 
    $('#activity').on("mouseout", function() { 
     timeout = setTimeout(function() { $("#activity").fadeOut(1500); }, 15000); 
    }); 

    timeout = setTimeout(function() { $("#activity").fadeOut(1500); }, 15000) 
}); 
+0

Он отлично работает .. Спасибо @Lynch –

+0

Нет проблем, с удовольствием помогите – Lynch

+0

Если вы довольны ответом, можете ли вы пометить его как принятый? – Lynch

1

Попробуйте этот код: -

$(document).ready(function() { 
     // Action on mouseover from pop-up 
     $('#activity').on("mouseover", function(e) { 
      $('#activity').show(); 
     }); 

     // Action on mouseout from pop-up 
     $('#activity').on("mouseout", function() { 
      setTimeout(function() { $("#activity").fadeOut(1500); }, 15000); 
     }); 
    setTimeout(function() { $("#activity").fadeOut(1500); }, 15000) 
    }) 

или добавить $ в этой строке

$('#activity').show(); 
0

Попробуйте это:

$(document).ready(function() { 
// Action on mouseover from pop-up 
$('#activity').mouseover(function(e) { 
    $('#activity').show(); 
}); 

// Action on mouseout from pop-up 
$('#activity').mouseout(function() { 
    setTimeout(function() { $("#activity").fadeOut(1500); }, 15000); 
}); 

}); 

Вы позволить actitvity исчезать в любом случае из-за вашей последней строки кода ...

+0

OP заявила, что если после 15 секунд активности во всплывающем div не было, он хотел, чтобы его удаляли. Эта последняя линия завершилась тем, что – Lynch

Смежные вопросы