1
qiayue 2013-06-01 16:37:34 +08:00 1
两张图,一张常态
一张gif,在:hover时显示 |
2
qiuai 2013-06-01 16:58:50 +08:00 1
预加载,然后hover切换就可以
|
3
lleon 2013-06-01 17:55:04 +08:00 1
一张gif
上半部分为静态 下半部分为动画 :link {background-position: left top; ...} :hover {background-position: left bottom; ...} |
4
Tiny 2013-06-02 14:56:04 +08:00
可以查看一下,虾米音乐首页顶部LOGO旁边的android和ios的图标
|
6
itcook 2013-06-02 18:21:11 +08:00 1
.mobile-gallery {
width: 140px; height: 39px; float: left; margin-top: 10px; text-indent: -9999px; background-repeat: no-repeat; background-image: url(http://img.xiami.com/static/img/common/b1.gif); } .mobile-gallery:hover { background-image: url(http://img.xiami.com/static/img/common/b2.gif); } 虾米的,善用firebug或者浏览器的调试功能~ |
7
itcook 2013-06-02 18:31:14 +08:00 1
另外补充下,虾米这种会出现鼠标移上去可能动态gif还未载入的情况(没有任何显示),@lleon 的方法更好:
1. 减少一次请求 2. 一般不会发生鼠标hover时没有显示的情况 当然这种实现方式的需要视觉设计稍微多花点功夫(时间成本略略高点),上半部分(以@lleon 的方式说明,当然也可以是下半、左半、右半等等与动态部分不重合的任意方位)每一帧都是完全相同的图形来实现伪静态效果,动态部分就是不想同的图形来实现动态效果。 然后就是通过backgroud-positon来进行一般、hover的图片定位了。 记得图片最好进行压缩减肥 :) |
8
itcook 2013-06-02 18:42:10 +08:00 1
再次补充:原谅我没有认真审题……Orz
360度产品展示的图片都不会太小,这种情况下还是用两张图片比较好,为了保证良好的用户体验,预加载是必须的,另外mouseover时可以调用javascript事件判断动态图是否加载完成,如果没有加载完成,再调用loading事件,loading完成后再显示动态图。 |