2013-12-13 15 views
6

Voglio mostrare il pulsante su div hover. quando passo il mouse su div e il pulsante mostra altrimenti nascondi.Come mostrare il pulsante sul mouse del mouse div

il mio pulsante in divbutton div.

html

<div class="divbutton"> 
    <button type="button" style="display: none;">Hello</button> 
</div> 

quando muovere il mouse sulla div dovrebbe mostrare, ma come farlo non so. quando rimuovo di nuovo il pulsante del mouse. Grazie.

+0

ho rimarcato la tua domanda utilizzando i CSS, supponendo che si sono OVVIAMENTE aperti alle soluzioni CSS, se non di quanto tu possa semplicemente tornare indietro. –

risposta

12

Utilizzare il seguente jQuery per eseguire l'attività.

Ecco la risposta di un jsfiddle demo

$(document).ready(function() { 
    $(document).on('mouseenter', '.divbutton', function() { 
     $(this).find(":button").show(); 
    }).on('mouseleave', '.divbutton', function() { 
     $(this).find(":button").hide(); 
    }); 
}); 
+4

Nessun tag 'jQuery' con questa domanda – Satpal

+0

Sì, lo so, ma questo è un modo semplice e ho fatto qualcosa di simile. –

+0

Grazie mi ha aiutato;) –

31

utilizzare il selettore di sotto

button { 
    display: none; /* Hide button */ 
} 

.divbutton:hover button { 
    display: block; /* On :hover of div show button */ 
} 

Demo

assicurarsi di assegnare alcuni height o min-height al vostro elemento div, altrimenti sarà 0 in quanto non detiene alcun contenuto anche. Inoltre, non utilizzare display: none; come stile in linea, poiché gli stili in linea hanno la massima specificità e, quindi, sarai costretto a utilizzare !important che non funziona.

Nell'esempio precedente sto utilizzando button {/*Styles*/} ma si tratta di un selettore di elementi generali, pertanto assicurati di definire un elemento nell'elemento button.

+2

Buona risposta. Il CSS funziona anche se l'utente non autorizza gli script sul suo browser. –

+1

Se vuoi che il pulsante scompaia senza influenzare il flusso o le posizioni di altri elementi, prova a usare 'visibility: hidden;' e 'visibility: visible;' invece di 'display'. –

+0

non funziona in Tryit Editor – Ooker

5

Mr. Alien dà un bel implementazione CSS. Se avete bisogno di jQuery, utilizzare questo -

$(".divbutton") 
.on("mouseenter", function() { 
    $("button").show(); 
}) 
.on("mouseleave", function() { 
    $("button").hide(); 
}); 

in puro JavaScript -

var buttonDiv = document.getElementsByClassName("divbutton")[0]; //better use some id and then use getElementById 

buttonDiv.onmouseover = function() { 
    document.getElementById("YourButtonId").style.display = 'block'; 
} 

buttonDiv.onmouseout = function() { 
    document.getElementById("YourButtonId").style.display = 'none'; 
} 
0

Prova questo:

$('.divbutton').mouseover(function(event) 
{ 
    $(this).find('button').show(); 
}); 

$('.divbutton').mouseout(function(event) 
{ 
    $(this).find('button').hide(); 
}); 
Problemi correlati