2016-02-23 2 views
3

Я хочу скрыть контент в div, когда окно моей веб-страницы неактивно. У меня есть тис код JQuery:Скрыть div при открытии меню браузера

$(window).blur(function(){ 
    $("#context").hide(); 
}); 

$(window).focus(function(){ 
    $("#context").show(); 
}); 

Он отлично работает, но если открыто меню браузера (меню, содержащее новую вкладку, историю ... варианты), контекст не скрывает. Есть ли решение для этого? Спасибо

+1

пытаются сочетать синий с MouseOut событием. Если ваша мышь не находится в области Windows, скройте «контекст». – Entwickler

ответ

2

Короче говоря, нет. API-интерфейс браузера для обнаружения взаимодействия с собственными элементами отсутствует. Самое близкое, что вы сможете получить, это следить за тем, чтобы курсор покидал окно рядом с частью рамки браузера, содержащей дескриптор меню. Тем не менее, поскольку каждый браузер размещает это меню в другом месте, вы собираетесь попасть в quaqmire детектирования UA, таймеры и события mousemove, чтобы все было правильно.

+0

В другом слове, кошмарном кодировании. :) – Si8

1

решение работает для меня:

$(document).ready(function(){ 
    $("body").mouseleave(function(){ 
    $("#context").hide(); 
    }); 
}); 
+0

Это будет эффективно говорить вам, когда мышь оставила элемент тела, однако, поскольку элемент body может иметь любой размер, он не дает вам эффективного ответа, если мышь нажала кнопку «меню», запрошенную OP, или даже если мышь покинула рамку браузера. – RickyTomatoes

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