Eu tenho uma barra de menu com efeitos de foco e agora quero colocar uma imagem transparente com um círculo e um texto "desenhado à mão" sobre um dos itens do menu. Se eu usar o posicionamento absoluto para colocar a imagem de sobreposição acima do item de menu, o usuário não conseguirá clicar no botão e o efeito de foco não funcionará.
Existe alguma maneira de desabilitar de alguma forma a interação do mouse com esta imagem de sobreposição para que o menu continue funcionando como antes, mesmo que esteja abaixo de uma imagem?
Editar:
Como o menu foi gerado com o joomla, não pude ajustar apenas um dos itens do menu. E mesmo que pudesse, não achei que uma solução javascript fosse apropriada. Portanto, no final, "marquei" o item de menu com uma seta fora do elemento de item de menu. Não tão bom quanto eu queria que fosse, mas funcionou bem de qualquer maneira.
fonte
Então eu fiz isso e funciona no Firefox 3.5 no Windows XP. Ele mostra uma caixa com algum texto, uma sobreposição de imagem e um div transparente acima que intercepta todos os cliques.
O que eu fiz: criei um div e o dimensionei para ser o tamanho de uma opção de menu, 100x40px (um valor arbitrário, mas ajuda a ilustrar o exemplo).
O div tem uma sobreposição de imagem e uma sobreposição de link. O link contém um div de tamanho igual ao div 'menuOption'. Dessa forma, um clique do usuário é capturado em toda a caixa.
Você precisará fornecer sua própria imagem durante o teste. :)
Advertência: se você espera que o botão do menu responda à interação do usuário (por exemplo, mudar a cor para simular um botão), então você precisará de um código extra anexado ao javascript que você invocará na tag, esse código extra pode endereçar o ' elemento menuOption 'através do DOM e alterar sua cor.
Além disso, não há outra maneira que eu conheço de você pegar um evento click e fazer com que ele seja registrado em um elemento abaixo de um elemento de página visível. Eu tentei isso também neste verão e não encontrei outra solução além desta.
Espero que isto ajude.
PS: O artigo sobre os eventos no quirksmode ajudou muito a me ajudar a entender como os eventos se comportam nos navegadores.
fonte
Dê ao botão uma propriedade de Z-index maior do que a imagem desenhada à mão:
entretanto, certifique-se de testá-lo em todos os principais navegadores. O IE interpreta o índice z de maneira diferente do FF. Para alguém apresentar mais detalhes, você teria que postar mais informações, um link seria o melhor.
fonte
Com base no que Pekka Gaiser disse, acho que o seguinte funcionará. Pegando seu exemplo e retrabalhando-o:
Aqui, você deve ser capaz de colocar um evento na tag subjacente e, a menos que sua imagem tenha um evento, inicia uma captura (navegadores! IE) e, em seguida, elimina a propagação do evento.
Se precisar de mais ajuda, conte-nos um pouco mais sobre a situação.
fonte
Se a imagem for posicionada estaticamente, você pode capturar o evento de clique da imagem conforme ela surge, colocando a tag img dentro do elemento do item de menu.
fonte