Acabei de brincar com pointer-events
propriedade em CSS.
Eu tenho um div
que quero ficar invisível para todos os eventos do mouse, exceto para :hover
.
Assim, todos os comandos de clique passam pelo div
para o abaixo dele, mas o div pode relatar se o mouse está acima dele ou não.
Alguém pode me dizer se isso pode ser feito?
HTML:
<div class="layer" style="z-index:20; pointer-events:none;">Top layer</div>
<div class="layer" style="z-index:10;">Bottom layer</div>
CSS:
.layer {
position:absolute;
top:0px;
left:0px;
height:400px;
width:400px;
}
html
css
pointer-events
Jimmery
fonte
fonte
pointer-events
não é bem suportado no IE .Respostas:
Não acho que seja possível atingir seus objetivos apenas em CSS. No entanto, como outros colaboradores mencionaram, é bastante fácil de fazer em JQuery. Veja como eu fiz:
HTML
CSS (inalterado)
JQuery
Aqui está o JSFiddle: http://www.jsfiddle.net/ReZ9M
fonte
Passe o mouse apenas. Isso é muito fácil. Sem JS ... Impedir ação padrão do link também.
Editar: compatível com IE 11 e superior http://caniuse.com/#search=pointer-events
fonte
"Roubar" a resposta de Xanco, mas sem aquela jQuery feia, feia.
Snippet : Observe que os DIVs estão na ordem inversa
fonte
Você também pode detectar a passagem do mouse sobre um elemento diferente e aplicar estilos a seu filho, ou usar outros seletores css como filhos adjacentes, etc.
Depende do seu caso.
No elemento pai, passe o mouse. Eu fiz isso:
fonte
I utilizar a
:hover
pseudo-elemento de um pai / recipiente de igual tamanho para simular um pairar sobre o meu sobreposição div, em seguida, definir a sobreposiçãopointer-events
paranone
passar através de cliques para elementos abaixo.Exibir trecho de código
fonte
Solução CSS puro para sua solicitação (a propriedade opacity existe apenas para ilustrar a necessidade das transições):
O que faz:
Quando o mouse entra na caixa, ele aciona o
:hover
estado. No entanto, nesse estado, os eventos de ponteiro são desabilitados.Mas se você não definir os temporizadores de transição, o div cancelará o estado de foco quando o mouse se mover; o estado de foco irá piscar enquanto o mouse está se movendo dentro do elemento. Você pode perceber isso usando o código acima com as propriedades de opacidade.
Definir um atraso para a transição fora do estado de foco corrige isso. O
2s
valor pode ser ajustado para atender às suas necessidades.Créditos para transições ajustar: patad sobre esta resposta .
fonte
Apenas css puro , não precisa de jquery :
fonte