Я пробовал что-то, используя CSS3 переход и анимация (это работает только в современном браузере, см. caniuse )
вы можете увидеть мойпример скрипта здесь: http://jsfiddle.net/fcalderan/hfs22/
Основные преимущества:
- Не требуется JavaScript, это 100% чистый CSS;
- Нет необходимости загружать изображения;
- Плавная анимация.
HTML - это просто <div><span></span></div>
: я пытался избежать внутреннего диапазона в пользу псевдоэлементов: в Chrome, к сожалению, переходы не работают должным образом при применении к таким элементам (см. Ошибкуhttp://code.google.com/p/chromium/issues/detail?id=54699)
CSS
div {
height: 100px;
width : 100px;
-webkit-border-radius: 100px;
-msie-border-radius: 100px;
-moz-border-radius: 100px;
border-radius: 100px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
border : 20px red solid;
cursor : pointer;
}
div span {
-webkit-transform: rotate(45deg);
-msie-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
display : block;
margin : 10px 0 0 -20px;
background : #fff;
width : 102px;
height : 40px;
-webkit-transition: all 2s ease;
-msie-transition: all 2s ease;
-moz-transition: all 2s ease;
-o-transition: all 2s ease;
transition: all 2s ease;
}
div:hover {
-webkit-animation : rotation 2s ease;
-msie-animation : rotation 2s ease;
-moz-animation : rotation 2s ease;
-o-animation : rotation 2s ease;
animation : rotation 2s ease;
}
div:hover span {
height : 0;
margin-top : 30px;
}
@-moz-keyframes rotation {
0% { -moz-transform: rotate(45deg); }
100% { -moz-transform: rotate(-135deg); }
}
@-webkit-keyframes rotation {
0% { -webkit-transform: rotate(45deg); }
100% { -webkit-transform: rotate(-135deg); }
}
@-msie-keyframes rotation {
0% { -msie-transform: rotate(45deg); }
100% { -msie-transform: rotate(-135deg); }
}
@-o-keyframes rotation {
0% { -o-transform: rotate(45deg); }
100% { -o-transform: rotate(-135deg); }
}
@keyframes rotation {
0% { transform: rotate(45deg); }
100% { transform: rotate(-135deg); }
}