`
云端有天堂
  • 浏览: 3172 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

还在用JS写动画?那你就奥特了~~纯CSS实现元素旋转加放大

阅读更多
本文目前仅适用于 Chrome、Opera、Safari。
原文与demo:http://www.jsmix.com/css/approach-to-css3-animation.html
效果:鼠标移动到一个元素上,元素在2秒内旋转720度,并以原尺寸的1.5倍进行放大

要实现这个效果只需要非常简单的3个步骤,首先就是创建你需要旋转的元素。

<div id="css_animation">CSS 3</div>


接下来我们需要告诉浏览器刚才添加的元素需要运用它的一个属性去执行某种动画,设置动画执行的时间以及运动的函数。这里会用到 CSS 3 的新属性:transition。不用担心下面的代码会让你一头雾水,紧接着会有对 transition 属性详细的讲解。

#css_animation{
    width: 100px;
    height: 100px;
    background: purple;
    -webkit-transition: all 2s ease-in-out;
    -moz-transition: all 2s ease-in-out;
    -o-transition: all 2s ease-in-out;
    transition: all 2s ease-in-out;
}


width、height、background 不用再做任何介绍了,transition 的各种前缀是为了兼容不同浏览器的私有属性这一点相信对 CSS 3 稍有了解的人都也应该知道了。这里值得注意的是,到目前为止,Firefox 的最新版本 (3.6) 依然没有提供对 transition 的支持,但 Mozilla 声称将会在 Gecko 1.9.3 (firefox 4) 中引入这一属性,所以为了增强代码的延续性,我们依然添加了 -moz 的私有属性。

上面的 transition 是一个简写,第一个属性值 all 实际上是 transition-property 的属性值,他表示你讲告诉浏览器你会对哪个属性进行动画的操作。比如 transition-property : left , transition-property : opacity,width ,前者表示将要对属性 left 执行动画,后者表示会同时对 opacity 和 width 属性执行动画,是的,多个属性之间用半角逗号隔开。而这里设置的 all 则表示可能会对任何一个属性进行操作,这又是一个偷懒的方式。

第二个属性值 2s 就很简单了,它表示动画执行的时间,即元素从旧的属性转换到新的属性消耗的秒数。如果这个值为 0 则表示动画在执行时立即结束。该属性值的单位可以为 s (秒),也可以为 ms (毫秒)。当然,上面的代码同样对其使用了简写,完整的写法是 transition-duration : 2s; 默认值为0。

第三个属性值 ease-in-out,可以简单地理解为在动画执行中使用" ease-in-out "这种效果,这实际上将决定元素在动画过程中运用的何种函数来进行运动的计算,这通常被称作缓动函数。大致上有 "ease | linear | ease-in | ease-out | ease-in-out" 这么几种预定值。默认值为 "ease "。这个属性的完整写法是 transition-timing-function : ease-in-out;

在我们的 demo 中就是用了这3个属性,事实上,transition 还有一个属性值:transition-delay ,它的属性值跟 transition-duration 完全一样,唯一不同的是,它表示动画的延时时间,这很好理解,根据指定时间延迟动画的执行。

在进行最后一个步骤之前,有必要重申一下的是,transition 属性只是对上面提到的四个 transition-X 属性的简写,它的简写规则是: [<‘transition-property’> || <‘transition-duration’> || <‘transition-timing-function’> || <‘transition-delay’>] 。这一点千万不要搞混淆。另外,如果你想了解更多关于 transition 的内容 W3C 提供了非常详尽的文档。

正如你所看到 demo 中的那样,最后一个步骤我们需要给元素加上 hover 样式。这里用到的是 transform 属性。

#css_animation:hover {
    -webkit-transform: rotate(720deg) scale(1.5);
    -moz-transform: rotate(720deg) scale(1.5);
    -o-transform: rotate(720deg) scale(1.5);
    transform: rotate(720deg) scale(1.5);
}


相比 transition 属性,transform 要容易理解一些,他表示对元素进行变形。rotate(720deg)表示对元素进行720度的旋转变形,括号里的数字为旋转的角度值,单位 deg ,scale 是一个对元素进行缩放的功能,括号里的参数表示缩放的倍数,无需单位。事实上 transform 远比这里讲到的要强大得多,可以实现各种不同的变形,在W3C的文档中有非常详细的介绍。

到目前为止,你应该已经实现了如同上面 demo 中的效果。其实整个过程可以暂时这样理解:通过 transition ,我们对元素进行了 mouseover 事件监听,并记录下了它最初的所有(all)属性的值,当元素的 mouseover 事件被触发的时候,找到元素的目标属性的值,然后执行动画。就是这么简单。另外值得一提的是,当元素处于动画状态时,如果元素中包含文字,此时文字依然是可选的,这是 SVG 和 Canvas 所无法达到的效果。
真的很希望像国外网站一样,通过局部差异化的开发,逐步过渡到css3,也让用户过渡到firefox、chrome等先进的浏览器。



分享到:
评论

相关推荐

    JavaScript忍者秘籍 ,(美)莱西格,(美)贝比奥特著 完整版

    本分卷由2345好压(Haozip)生成,请使用2345好压来解压。 2345好压下载地址:http://haozip.2345.com/ 分卷文件共有以下2个: JavaScript忍者秘籍 ,(美)莱西格,(美)贝比奥特著 ,P350.haozip01.zip JavaScript...

    奥特迅JKQ3000A(B).pdf

    《奥特迅JKQ3000A(B)直流系统后台通讯详解》 奥特迅JKQ3000A(B)系列监控器是专为直流系统设计的高性能监控装置,具备强大的通讯功能,便于后台管理系统获取实时运行数据。本文将深入解析其通讯与后台配置的细节。 ...

    奥特网络智能办公系统

    "奥特网络智能办公系统"是一款专为提升企业办公效率而设计的应用,其数据库采用了SQL作为数据存储和管理的核心技术。SQL(Structured Query Language),即结构化查询语言,是关系型数据库管理系统中用于管理和处理...

    奥特迅工作总结.doc

    【奥特迅工作总结】 本文是关于奥特迅电力大厦项目的工程管理工作总结,涵盖了工程概况、施工过程管理情况、工程质量控制状况、工程进度控制情况以及工程成本控制情况。 **工程概况** 奥特迅电力大厦位于深圳市...

    JavaScript忍者秘籍 ,(美)莱西格,(美)贝比奥特著 ,P350.haozip02.zip

    本分卷由2345好压(Haozip)生成,请使用2345好压来解压。 2345好压下载地址:http://haozip.2345.com/ 分卷文件共有以下2个: JavaScript忍者秘籍 ,(美)莱西格,(美)贝比奥特著 ,P350.haozip01.zip JavaScript...

    Foobar2000-1.1.5 奥特歌词版

    《Foobar2000-1.1.5 奥特歌词版》是一款深受音乐爱好者喜爱的音频播放软件,其特色在于内嵌了奥特歌词库,这为用户提供了丰富的歌词显示功能,增强了听歌体验。这次的版本1.1.5在布局方面进行了优化,使得软件界面...

    JavaScript忍者秘籍 [(美)莱西格,(美)贝比奥特著]

    JavaScript语言非常重要,相关的技术图书也很多,但没有任何一本书对JavaScript语言的重要部分(函数、闭包和原型)进行深入、全面的介绍,也没有任何一本书讲述跨浏览器代码的编写。本书是jQuery库创始人编写的一本...

    汽车行业简评报告:通用汽车在中国发布“奥特能”电动车平台.rar

    《通用汽车在中国发布“奥特能”电动车平台》 在当今全球汽车行业,电动化趋势日益明显,各大汽车制造商纷纷加大投入,推出自家的电动车平台,以抢占市场先机。通用汽车作为全球知名的汽车制造商,近期在中国发布了...

    奥特迅:首次公开发行股票招股说明书.PDF

    奥特迅:首次公开发行股票招股说明书.PDF

    奥特公司产品组合策略研究—文献综述-论文.zip

    《奥特公司产品组合策略研究—文献综述》 在当今快速变化的市场环境中,企业的产品组合策略成为了决定其竞争力和长远发展的重要因素。本文主要针对奥特公司进行深入研究,通过对相关文献的综合分析,探讨了产品组合...

    奥特公司产品组合策略研究—文献综述(1).zip

    《奥特公司产品组合策略研究—文献综述》 在当今快速变化的市场环境中,企业的产品组合策略成为了决定其竞争力和长远发展的重要因素。奥特公司作为一家在业界具有影响力的公司,其产品组合策略的研究显得尤为关键。...

    万丰奥特控股集团 二十年厚积薄发,新能源大展身手.pdf

    万丰奥特控股集团 二十年厚积薄发,新能源大展身手.pdf

    奥特公司产品组合策略研究—开题报告.zip

    总的来说,《奥特公司产品组合策略研究》的开题报告将全面分析奥特公司的产品组合现状,提出有针对性的策略建议,以帮助企业在激烈的市场竞争中实现持续发展。这份报告的研究成果不仅对奥特公司有益,也为其他面临...

    奥特公司产品组合策略研究—文献综述.doc

    【奥特公司产品组合策略研究】的文献综述主要探讨了营销组合策略的历史演变和国内外研究现状,这对于理解如何在企业实践中制定有效的产品组合策略至关重要。营销组合策略是企业通过综合运用产品、价格、渠道、促销等...

    汽车行业简评报告:通用汽车在中国发布“奥特能”电动车平台(2021)(10页).pdf

    通用汽车推出的“奥特能(Ultium)”电动车平台是其在全球范围内的第三代纯电动平台,首次在中国亮相。该平台具有高度的灵活性,可支持不同电压(400V和800V)和电池容量(50KWh至200KWh)的需求,旨在满足广泛车型...

    奥特公司产品组合策略研究—文献综述.zip

    《奥特公司产品组合策略研究—文献综述》是一份深入探讨企业产品组合管理的文档,主要关注奥特公司的战略决策。在这个高度竞争的商业环境中,有效的产品组合策略是企业保持竞争优势的关键。以下是对这份文献综述的...

    奥特公司产品组合策略研究—开题报告-论文.zip

    《奥特公司产品组合策略研究》是一篇深入探讨企业产品管理策略的重要论文,主要围绕奥特公司的产品线和市场定位,分析如何通过有效的产品组合策略提升企业的竞争力和市场份额。产品组合策略是企业管理中的核心环节,...

    二年级数学上册第四单元表内乘法(一):1乘法的初步认识  第一课时课件 (2).ppt

    在二年级数学上册的第四单元,孩子们将接触到表内乘法的第一个概念——乘法的初步认识。这个单元主要目标是引导学生理解乘法运算的基本原理,并学会用乘法简化相同加数的加法运算。 乘法是数学中的基本运算之一,它...

    奥特公司产品组合策略研究—开题报告.doc

    【奥特公司产品组合策略研究】 一、课题的背景、作用和意义 奥特公司作为中国化工设备供应的重要民营企业,面临着日益激烈的市场竞争。随着石油石化技术的快速发展,化工机械设备不断更新换代,企业间的竞争已经从...

Global site tag (gtag.js) - Google Analytics