2013-12-13 8 views
6

ich möchte Knopf auf div Hover zeigen. Wenn ich mit der Maus auf div tendiere dann die Schaltfläche show ansonsten ausblenden.Wie man Knopf auf div Mausschwebeflug zeigt

mein Knopf in divbutton Div.

html

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

, wenn ich die Maus auf div schweben sollte es zeigt aber, wie zu tun, dass ich weiß nicht. Wenn ich die Maustaste wieder entferne, blende. Danke.

+0

Ich habe Ihre Frage mit Hilfe von CSS retagged, dass Sie unter der Annahme, sind offen für CSS-Lösungen, wenn Sie nicht einfach zurückkehren können. –

Antwort

12

Verwenden Sie die folgende jQuery, um Ihre Aufgabe auszuführen.

Hier ist ein jsfiddle demo

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

Nein 'jQuery' Tag mit dieser Frage – Satpal

+0

Ja, ich weiß, aber das ist ein einfacher Weg, und ich habe so etwas getan. –

+0

Danke hat mir geholfen;) –

31

Verwenden Sie den unten Selektor

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

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

Demo

auch sicherstellen, dass Sie einige height oder min-height zu Ihrem div Element zuweisen, sonst wird es 0 sein, da es keinen Inhalt halten. Verwenden Sie auch nicht display: none; als Inline-Stil, da Inline-Stile die höchste Spezifität aufweisen. Daher müssen Sie !important verwenden, was schlecht ist.

Im obigen Beispiel bin ich mit button {/*Styles*/} aber das ist ein allgemeiner Elementselektor, also stellen Sie sicher, dass Sie ein class zu Ihrem button Element definieren.

+2

Gute Antwort. CSS funktioniert auch dann, wenn der Benutzer Skripts in seinem Browser nicht erlaubt. –

+1

Wenn Sie möchten, dass die Schaltfläche verschwindet, ohne den Fluss oder die Positionen anderer Elemente zu beeinflussen, versuchen Sie, 'visibility: hidden;' und 'visibility: visible;' anstelle von 'display' zu verwenden. –

+0

funktioniert nicht in Tryit Editor – Ooker

5

Mr. Alien Antwort eine schöne CSS-Implementierung gibt. Wenn Sie in jquery benötigen, verwenden Sie diese -

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

In reinen 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

Versuchen Sie folgendes:

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

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