Эх, если бы я знал где именно проблема...
Вчера удалось улучшить ситуацию, теперь практически всё работает, но когда блок плавно закрывается, он всё равно остаётся на экране, не смотря на то что конечная точка анимации имеет opacity: 0.
Код переформатировал и убрал по возможности лишнее.
Т.е. проблема сейчас вроде только одна осталась: по окончании анимации закрытия, блок уменьшается, но не исчезает.
.sgin{
-moz-animation-name: anumaciyoCollapse;
-moz-animation-duration: 2000ms;
-moz-animation-fill-mode: forwards;
}
.yavis{
-moz-animation-name: anumaciyoAppear;
-moz-animation-duration: 2000ms;
}
/*<!--Ключевые кадры анимации--> */
@-moz-keyframes anumaciyoAppear {
0%{
-moz-transform: scale(0.1,0.1);
-moz-opacity: 0;
}
100% {
-moz-transform: scale(1,1);
-moz-opacity: 1;
}
}
@-moz-keyframes anumaciyoCollapse {
0% {
-moz-transform: scale(1,1);
-moz-opacity: 1;
}
100%{
-moz-transform: scale(0.05,0.05);
-moz-opacity: 0;
}
}
/*Стиль всплывающего окна */
#appear {
position: absolute;
width:320px;
left: 35%;
top: 100px;
border:solid #666688 2px;
display: none;
z-index: 100;
background-color:#666699;
color:#fff;
text-align:center;
padding:10px;
}
function showWin(){
document.getElementById('appear').style.display='block';
var element = document.getElementById('appear');
element.className = "yavis";
}
function collapseWin() {
var element = document.getElementById('appear');
element.className = "sgin";
}
<a href="#" onclick="showWin();">open menu</a>
<div id="appear" >
text
<button type="button" onClick="collapseWin()" >X</button>
</div>
Проблема конечно решается добавлением чего-то типа:
function displNone(){document.getElementById('appear').style.display='none';}
setTimeout(displNone,2000);
но это же ненормально...