2014-12-22 3 views
3

Я не уверен, как выразить это, если честно.Остановить наведение/перемещение CSS на родительском элементе

У меня есть панель навигации, которая обнажает подменю при наведении указателя мыши позволяет говорить

#navigation:hover #submenu {visibility: visible} 

в подменю У меня есть кнопка закрытия, которую я когда щелкнул должен прекратить парение на навигационном элементе. Но не удаляйте его для будущих зависаний.

Как мне решить эту проблему?

+0

Значит, он должен свернуть подменю? – mbomb007

+1

Можете ли вы разместить свои html и CSS? –

+0

для управления этим типом взаимодействия вы должны управлять через javascript. , если вы публикуете скрипку, проще понять структуру. – cesare

ответ

1

Использование :active селектор.

#test:hover #grapes { 
    display: block; 
} 
#grapes { 
    display: none; 
    border: 1px solid black; 
    padding-bottom: 2em; 
    position: relative; 
} 
#fubar { 
    position: absolute; 
    bottom: 0px; 
} 
#fubar:active + ul { 
    display: none; 
} 

Working Fiddle

PS: Я взаимозаменяемые позиции ul и #fubar элементов, чтобы получить желаемое решение, используя прилегающий селектор родственного.

+0

Интересно, а как насчет совместимости? Это отлично работает в IE 8-9? – enguerranws

+0

@enguerranws ​​yup .. должен работать, поскольку я не использую css3 здесь. :) –

+0

Да, но IE и некоторые другие не запускают/не понимают: активный псевдокласс для всех элементов html. – enguerranws

0

В этом случае явным является ответ. hover и toggleFade полезные ярлыки вещей, но когда вам нужно сделать что-то более сложное (например, имеет ручное вмешательство в hover или fade обработке), то вы лучше, используя явную, расширенную форму, например: http://jsfiddle.net/v8jroxvx/1/

$('#test').on('mouseenter', function(){ 
    $('#grapes').stop(true, true).fadeIn(); 
}).on('mouseleave', function() { $('#grapes').stop(true, true).fadeOut(); }) 

$('#fubar').click(function() 
{ 
    $('#grapes').fadeOut(); 
}) 

Я явно говорил на мыши войти, увядает СЧА в и на отпуск мыши, исчезают СЧА из и в случае нажатия на кнопку закрытия, я явно говорил , когда я clicick #grapes, принудительно выцветает навигация.

0

я сделать что-то вроде этого

$hoveredContainer.css('pointer-events', 'none'); 
    setTimeout(function() { 
     $hoveredContainer.css('pointer-events', 'auto') 
    }, 10); 

Где $ hoveredContainer является переменной, содержащей элемент JQuery, который в настоящее время завис.

Что делает этот код, является «неотъемлемым» элементом в течение секунды.

Он работает для выпадающих списков, когда мышь находится над расширенной областью, в которой производится выбор.

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