JS
var div=document.getElementsByTagName('div')[0],
btn=document.getElementsByTagName('button')[0];
div.addEventListener('webkitAnimationEnd',function(e){
div.style.display=div.classList.contains('hide')?'none':'';
},false);
btn.addEventListener('click',function(e){
div.style.display='';
div.classList.toggle('hide');
},false);
CSS3
div{
background-color:green;
-webkit-animation:x 700ms ease 0ms 1 normal running;
opacity:1;
}
div.hide{
-webkit-animation:x 700ms ease 0ms 1 reverse running;
opacity:0;
}
@-webkit-keyframes x{
0%{opacity:0;}
100%{opacity:1;}
}
http://jsfiddle.net/qQM5F/8/
Object.defineProperty(HTMLElement.prototype,'toggleOpacity',{value:function(){
function check(e){
this.style.display=this.classList.contains('hide')?'none':'';
this.removeEventListener('webkitAnimationEnd',check,false);
}
this.addEventListener('webkitAnimationEnd',check,false);
this.style.display='';
this.classList.toggle('hide');
},writable:false,enumerable:false});
CSS
.fade{
-webkit-animation:x 700ms ease 0 1 normal;
opacity:1;
}
.fade.hide{
-webkit-animation:x 700ms ease 0 1 reverse;
opacity:0;
}
@-webkit-keyframes x{
0%{opacity:0}
100%{opacity:1}
}
, , fade,
element.toggleOpacity();
http://jsfiddle.net/qQM5F/9/