黄聪:学习笔记: CSS3 鼠标悬停动画
2010-04-16 00:01
387 查看
作者 fisio
09年5月30日
CSS, WebKit, 浏览器, 设计
受 pbtweet 里面那个漂亮的贴图徽章启发,我搜索了一些相关资料,将如何用 CSS 实现鼠标悬停动画效果的方法整理成本文。目前,能正确显示这些非正式 CSS 属性的浏览器还非常有限,不过可以确信的是,不能显示动画的浏览器不会受到不良影响,那么就让优秀的浏览器物尽其用吧。查看示例请用 Chrome, Safari 访问 本文,其它浏览器可能不能正常显示。
上图是一个鼠标悬停动画的例子,如果将以下代码应用到全局 CSS 中,则所有带链接的图片都会有如上图动画:
如果要求仅应用于 class="logo" 的图片,则将选择器改为:
如果要求应用于 id="footer" 的 div 下所有图片,则将选择器改为:
到这里,所有的工作都完成了,挺简单吧?下面进入详细分析说明。
兼容浏览器: Firefox 3.5, Chrome 2.0, Safari 3.1
上面的例子仅仅应用了 transform: rotate, 在鼠标悬停的时候逆时针旋转。除了 rotate, 还有 scale, translate, skew, matrix 等用法,想要深入把玩可参考 Animation Using CSS Transforms.
默认值在对象的正中,X Y 值均为 50%. 更改数值可移动形变中心。下面两个例子,左边是 100% 100%(右下角), 右边是 0%, 100%(左下角):
-webkit-transition 是一个神奇的属性,它定义了动画过程的类型、时间、时间轴曲线。all 表示对所有变化应用动画,包括 transform, opacity; 后面两项是时间和时间轴曲线,可以有如下赋值:
default »
linear »
ease-in »
ease-out »
ease-in-out »
cubic-bezier »
以上 demo 来自 Transition Timing Functions, 展示了 transition 时间控制的强大,而且上面的 transform 是可以多重叠加的,配合 transition, 能做些什么大家想象一下吧!
兼容浏览器: 除了 IE
这是一个较为广泛支持的属性,前面早已没有了私有前缀(-moz, -webkit). 使用也很简单,让正常状态的图片稍微透明显示,鼠标悬停的时候恢复不透明,更加醒目。它同样可以在时间轴上受 transition 控制,试试看这个示例。
以上赋值分别代表 X轴偏移,Y轴偏移,阴影扩散尺寸,颜色。应用到按钮、标题等处有很好的浮雕效果,同样的风格在 Mac OS X, iPhone 系统界面中有大量应用。
目前 CSS3 还在草案阶段,很多属性还有私有属性前缀,能兼容新属性的浏览器在用户比例上也还是少数。话说回来,谁指望 IE Trident? 屁股都要笑掉。
Gecko 真的已经落后 WebKit 好多了,CSS, JS, 而且还没算上 WebKit 在 iPhone, Android 等移动平台的成就。Gecko 在这方面基本还是零吧。
http://fis.io/css-3-hover-animations.html
09年5月30日
CSS, WebKit, 浏览器, 设计
受 pbtweet 里面那个漂亮的贴图徽章启发,我搜索了一些相关资料,将如何用 CSS 实现鼠标悬停动画效果的方法整理成本文。目前,能正确显示这些非正式 CSS 属性的浏览器还非常有限,不过可以确信的是,不能显示动画的浏览器不会受到不良影响,那么就让优秀的浏览器物尽其用吧。查看示例请用 Chrome, Safari 访问 本文,其它浏览器可能不能正常显示。
上图是一个鼠标悬停动画的例子,如果将以下代码应用到全局 CSS 中,则所有带链接的图片都会有如上图动画:
a img { opacity: 0.8; -webkit-transition: all 0.2s ease-out; } a:hover img { opacity: 1; -moz-transform: scale(1.05) rotate(2deg); -webkit-transform: scale(1.05) rotate(2deg); }
如果要求仅应用于 class="logo" 的图片,则将选择器改为:
a img.logo {...} a:hover img.logo {...}
如果要求应用于 id="footer" 的 div 下所有图片,则将选择器改为:
#footer a img {...} #footer a:hover img {...}
到这里,所有的工作都完成了,挺简单吧?下面进入详细分析说明。
transform: 形变目标值设定
兼容浏览器: Firefox 3.5, Chrome 2.0, Safari 3.1
-moz-transform: rotate(-30deg); -webkit-transform: rotate(-30deg);
上面的例子仅仅应用了 transform: rotate, 在鼠标悬停的时候逆时针旋转。除了 rotate, 还有 scale, translate, skew, matrix 等用法,想要深入把玩可参考 Animation Using CSS Transforms.
transform-origin: 形变中心点设定
兼容浏览器: Firefox 3.5, Chrome 2.0, Safari 3.1-moz-transform-origin: 50% 50%; -webkit-transform-origin: 50% 50%;
默认值在对象的正中,X Y 值均为 50%. 更改数值可移动形变中心。下面两个例子,左边是 100% 100%(右下角), 右边是 0%, 100%(左下角):
transition: 过程动画设定
兼容浏览器: Chrome 2.0, Safari 3.1-webkit-transition: all 0.2s ease-out;
-webkit-transition 是一个神奇的属性,它定义了动画过程的类型、时间、时间轴曲线。all 表示对所有变化应用动画,包括 transform, opacity; 后面两项是时间和时间轴曲线,可以有如下赋值:
default »
linear »
ease-in »
ease-out »
ease-in-out »
cubic-bezier »
以上 demo 来自 Transition Timing Functions, 展示了 transition 时间控制的强大,而且上面的 transform 是可以多重叠加的,配合 transition, 能做些什么大家想象一下吧!
opacity: 不透明度
兼容浏览器: 除了 IE
这是一个较为广泛支持的属性,前面早已没有了私有前缀(-moz, -webkit). 使用也很简单,让正常状态的图片稍微透明显示,鼠标悬停的时候恢复不透明,更加醒目。它同样可以在时间轴上受 transition 控制,试试看这个示例。
text-shadow: 文字阴影
兼容浏览器: Firefox 3.5, Chrome 2.0, Opera 9.5, Safari 3.1text-shadow: 0px 1px 3px black;
以上赋值分别代表 X轴偏移,Y轴偏移,阴影扩散尺寸,颜色。应用到按钮、标题等处有很好的浮雕效果,同样的风格在 Mac OS X, iPhone 系统界面中有大量应用。
结语
限于篇幅,本文示例所用的 CSS 不明文列出,有兴趣可以查看页面源代码,就嵌在正文中。目前 CSS3 还在草案阶段,很多属性还有私有属性前缀,能兼容新属性的浏览器在用户比例上也还是少数。话说回来,谁指望 IE Trident? 屁股都要笑掉。
Gecko 真的已经落后 WebKit 好多了,CSS, JS, 而且还没算上 WebKit 在 iPhone, Android 等移动平台的成就。Gecko 在这方面基本还是零吧。
http://fis.io/css-3-hover-animations.html
相关文章推荐
- Css3学习笔记(六):动画
- 【CSS3特效】鼠标悬停动画
- 鼠标悬停显示CSS3动画边框
- iHover实用的CSS3图片鼠标悬停动画特效插件
- 常用的css3鼠标悬停按钮动画特效
- 【CSS3】多款炫酷鼠标悬停图文动画效果
- 实用的html5 css3图片鼠标悬停动画特效
- CSS3鼠标悬停图片动画 多种文字动画效果
- css3实现鼠标悬停动画特效
- css3文字导航鼠标悬停气泡动画特效源码下载
- 基于CSS3制作的鼠标悬停动画菜单
- jQuery css3鼠标悬停图片显示遮罩层动画特效
- 【HTML5学习笔记】34:CSS3动画效果
- 【学习笔记01】:hover为DIV添加鼠标悬停时改变颜色的效果
- css3动画学习笔记
- CSS3动画之animation属性学习笔记
- 纯css3实现的鼠标悬停动画按钮
- 纯css3实现的鼠标悬停动画按钮
- h5新标签和css3动画制作一个鼠标悬停的动画效果
- css3动画学习笔记