2016-05-19 3 views
0

Ich mag einen CSS-only Popup für ein Bild implementieren, die angezeigt werden sollen, wenn der Benutzer mit der Maus über dieses Bild schwebt. Nachdem hier lesen, zum Beispiel in this thread, kam ich mit dieser Lösung:CSS Hover Popup mit Fade-in und -out

a.tooltip span { 
    width: 250px; 
    border: #000 1px solid; 
    background: #F8F8F8; 
    display: none; 
    padding: 10px; 
    z-index: 1000000; 

    opacity: 0; 
    transition: 750ms all; 
} 
a.tooltip:hover span { 
    display: inline; 
    position: absolute; 
    top: 10px; 
    left: 25px; 
    outline: none; 
    text-decoration: none; 
    font-size: 70%; 
    color: #000; 

    opacity: 1; 
} 

Allerdings ist diese Lösung nicht die Popup-Fade-In macht, ist es einfach, ohne jede Verzögerung erscheint. Außerdem möchte ich, dass das Popup ausgeblendet wird, wenn der Benutzer den Mauszeiger wieder wegbewegt.

Alle Ideen, was ich tue, falsch, oder was soll ich lieber stattdessen versuchen?

PS: Dies ist, wie ich den Code nennen:

<a href="#" class="tooltip"> 
    <img src="questionmark.png" /> 
    <span>Tooltip Text.</span> 
</a> 
+2

Hmm, würden Sie in der Lage sein, die entsprechende HTML-Struktur hinzuzufügen, so dass es einfacher ist für die Menschen das Problem zu reproduzieren Sie konfrontiert? – Serlite

+0

Der Übergang ist in den '' , nicht in der Tooltip, und der Übergang ist nicht in dem ': hover' Zustand. –

+0

Hallo Matthias, Ihr Code spiegelt keine der angenommenen Antworten wider, ist der Link, auf den Sie verweisen. Es gibt 3 Methoden für diesen Beitrag, die Sie ausprobieren können. – David

Antwort

1

Sie können nicht einen Übergang zu einem Element mit display:none; fügen Sie es wie folgt tun müssen:

a.tooltip span { 
    position: absolute; 
    top: 10px; 
    left: 25px; 
    width: 250px; 
    border: #000 1px solid; 
    background: #F8F8F8; 
    padding: 10px; 
    z-index: 1000000; 
    display: inline; 
    opacity: 0; 
    transition: 750ms all; 
} 
a.tooltip:hover span { 
    outline: none; 
    text-decoration: none; 
    font-size: 70%; 
    color: #000; 
    opacity: 1; 
} 

Nur Opazität verwenden Das ist übergangsweise möglich. Anschauliches Beispiel: https://jsfiddle.net/wbpbcyfz/1/

+0

Interessant. In Ihrem JSFiddle Beispiel funktioniert es wie erwartet, incl. IE11 (die ich hauptsächlich unterstützen muss). Wenn ich jedoch Ihren Code ohne Änderungen c & p, funktioniert es nicht. Der Bereich wird bereits angezeigt, wenn ich die Seite lade ... – Matthias

+0

Sie müssen mehr CSS haben, das störend ist, vielleicht haben Sie 'display: none;' oder 'opacity: 0;' auf einem Elternelement. Verwenden Sie chlome dev tools (F12), um das Element zu untersuchen. –

+0

Ich möchte mehr Informationen von Ihnen zu diesem Thema hören. –