我正在查看当前Google Chrome 38.0.x上的网页http://www.cuttherope.net,并看到页面中间有4个图标。当鼠标悬停在它上面时,它有一个图标挤压效果:好像图标是用手挤在一边的布丁或果冻,然后再次弹回到它的自然尺寸。
我想知道它是如何完成的:它是由HTML5 / CSS3完成的,还是它是如何完成的。我看到了div
<div class="game-icon resize"></div>
如果我使用开发者工具在其上设置display: none
,那么图标就会消失并且没有任何显示,所以这应该是显示效果的div
,但如果我检查了计算值,我确实看到一个图标作为背景,但是当鼠标悬停在它上面或者它外面时,所有计算值都不会改变。这是如何完成的,是否是HTML5 / CSS3新功能的一部分?
(如果我禁用JavaScript并重新加载页面,效果仍然有效,显然它不是由JavaScript完成的。)
答案 0 :(得分:1)
是的,这是CSS3功能的一部分(主要是transform
)
如果您希望在不必手动编码的情况下获得类似效果,请查看以下内容: http://daneden.github.io/animate.css/
只需向其中添加两个类,即可轻松为元素设置动画。
答案 1 :(得分:1)
[-webkit-]animation: resize 0.2s linear;
属性。禁用该效果并停止效果。
答案 2 :(得分:1)
我猜它会是这样的:
img:hover {
-webkit-animation: squeeze 0.5s;
animation: squeeze 0.5s;
}
@-webkit-keyframes squeeze{
0% { transform: scale(1, 1); }
50% { transform: scale(1.1, 0.9); }
100% { transform: scale(1, 1); }
}
@keyframes squeeze{
0% { transform: scale(1, 1); }
50% { transform: scale(1.1, 0.9); }
100% { transform: scale(1, 1); }
}
&#13;
<img src="http://placehold.it/100x100">
&#13;
答案 3 :(得分:0)
其他答案指出的CSS
.resize:hover {
-webkit-animation: resize 0.2s linear;
animation: resize 0.2s linear;
}
引用CSS中其他位置的以下关键帧动画
@-webkit-keyframes resize {
0% { -webkit-transform:scale(1, 1) }
50% { -webkit-transform:scale(1.1, 0.9) }
100% { -webkit-transform:scale(1, 1) }
}
@keyframes resize {
0% { transform:scale(1, 1) }
50% { transform:scale(1.1, 0.9) }
100% { transform:scale(1, 1) }
}
名称resize
是将两者联系起来的 - 它不是关键字 - 您可以将其称为boing
并使用
animation: boing 0.2s linear;
...
@keyframes boing {
等
关键帧说
0.2s
属性中的animation
告诉它需要0.2秒才能完成整个动画。一旦应用了样式,动画就会开始,在这种情况下,当你悬停时。