Wiem, że efekt można łatwo osiągnąć dzięki jQuery hide()
. Celem jest wykonanie tego za pomocą czystego CSS. Wynik zanikania musi mieć zajmuje zero miejsca na układzie strony (więc display:none
, więc elementvisibility:hidden
nie jest opcją).Czy istnieje obejście CSS-only (czystego CSS) do wprowadzania i zanikania obiektów z wyświetlaczem: brak?
mam sukces na popełnił blaknięcie w życie z czystym CSS na obiekt display:none
za pomocą kawałka animation
zamiast transition
, ale nie mogłem zrobić to praca na blaknięcie-out bez używać javascript setTimeout
metody.
Oto co mam do tej pory:
function aaa(){
document.getElementById("b").style.display = "inline-block";
}
function bbb(){
setTimeout(function(){ document.getElementById("b").style.display = "none"; }, 1000);
}
#b {
display: none;
opacity: 0;
-webkit-transition: all 1s; /* Safari */
transition: all 1s;
background: skyblue;
}
#a:hover ~ #b {
opacity: 1;
-webkit-animation: animate 1s; /* Chrome, Safari, Opera */
animation: animate 1s;
}
@keyframes animate {
0% {opacity: 0;}
100% {opacity: 1;}
}
div {
width: 58px;
height: 58px;
vertical-align: middle;
border: 1px solid black;
line-height: 58px;
text-align: center;
}
#a {
background: tomato;
}
#c {
background: greenyellow;
}
<div id=a onmouseenter="aaa()" onmouseleave="bbb()">OVER</div>
<div id=b>B</div>
<div id=c>C</div>
Czy to możliwe, aby osiągnąć ten sam rezultat zerowej JavaScript?
Nie można animować z 'wyświetlaczu: none' używając tylko CSS. Dlaczego nie skorzystać z wysokości? – LGSon
'height: 0'; działa tylko dla pustych elementów div, nie? –
Nie, działa dla wszystkich – LGSon