我在当前的Google Chrome38.0.x上查看网页http://www.cuttherope.net时,看到页面中间有4个图标。当鼠标移到它上面时,它就会产生一种图标挤压效果:就好像这个图标是用手挤在一边的布丁或果冻,然后又弹回原来的大小。
我想知道它是如何完成的:是由HTML5 / CSS3完成的,还是其他方式完成的。我看到了这个div
<div class="game-icon resize"></div>如果我使用developer tool在它上面设置display: none,那么图标将消失,没有显示,所以这应该是显示效果的div,但如果我检查计算的值,我确实看到一个图标作为背景,但当鼠标放在它上面或离开它时,所有计算的值都不会改变。这是如何实现的,它是HTML5 /css3新特性的一部分吗?
(如果我禁用JavaScript并重新加载页面,效果仍然有效,因此显然这不是由JavaScript完成的)。
发布于 2014-11-14 23:53:52
是的,这是CSS3功能的一部分(主要是transform )
如果您希望在不必手动编写代码的情况下获得类似的效果,可以查看以下内容:http://daneden.github.io/animate.css/
只需向元素添加两个类,就可以轻松地为元素添加动画效果。
发布于 2014-11-14 23:56:54
找到了!是的,它是CSS3,特别是[-webkit-]animation: resize 0.2s linear;属性。禁用那个,效果就会停止。
发布于 2014-11-15 00:35:54
我猜大概是这样的:
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); }
}<img src="http://placehold.it/100x100">
https://stackoverflow.com/questions/26933647
复制相似问题