2017-02-02 5 views
0

Okay, ich habe diese Runde div.Wie kann ich ein div beim Klick vom Bildschirm entfernen?

Mit diesem Styling fliegt es vom Bildschirm, wenn Sie darüber schweben.

#dot { 
    height: 75px; 
    width: 75px; 
    background-color: red; 
    border-radius: 50%; 
    margin: 0 auto; 
    position: relative; 
    top: 30vh; 
    transition: all 2s; 
} 

#dot:hover { 
    top: -1000vh; 
} 

#dot { 
    -webkit-transition-timing-function: ease-in-out; 
    transition-timing-function: ease-in-out; 
} 

Ich mag der Fly-off-the-Bildschirm Übergang auftreten, wenn der Punkt geklickt wird, und ich bin auf der Suche nach einer Lösung, die reinen CSS oder Javascript Vanille ist. Wenn es von Bedeutung ist, wird der Punkt schließlich in ein Link-Element eingepackt, und sein dramatischer Ausgang wird die Last einer neuen Seite verkünden.

Bonus Frage: Wenn diese Runde div schließlich ein SVG hat, wird das negativ auf seine Leistung/Aussehen?

Antwort

3

Sie können dies erreichen, indem Sie eine tabindex zu Ihrem div hinzufügen und Ihr CSS von :hover zu :focus ändern.

(Vergessen Sie nicht, den Umriss zu entfernen).

#dot { 
 
    height: 75px; 
 
    width: 75px; 
 
    background-color: red; 
 
    border-radius: 50%; 
 
    margin: 0 auto; 
 
    position: relative; 
 
    top: 30vh; 
 
    transition: all 2s; 
 
} 
 

 
#dot:focus { 
 
    top: -1000vh; 
 
    outline: none; 
 
} 
 

 
#dot { 
 
    -webkit-transition-timing-function: ease-in-out; 
 
    transition-timing-function: ease-in-out; 
 
}
<div tabindex='1' id = "dot"></div>

+0

Warum ein 'tabindex' braucht es? –

+1

Div, span, Tabelle usw. sind standardmäßig nicht fokussierbar, können aber den Fokus erhalten, wenn tabindex angewendet wird. Es könnte andere Wege geben, dies mit reinem CSS zu tun. Aber das ist alles, was ich habe;) –

+0

'' würde Fokus ohne die erhalten Notwendigkeit von Tabindex und wird sich wie erwartet für Tastaturbenutzer verhalten – FelipeAls

Verwandte Themen