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

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

要实现这个效果只需要非常简单的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 所无法达到的效果。
[b]真的很希望像国外网站一样,通过局部差异化的开发,逐步过渡到css3,也让用户过渡到firefox、chrome等先进的浏览器。[/b]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 常见的 3D 动画制作软件有: - Autodesk Maya - Blender - 3ds Max - Cinema 4D - Houdini - Lightwave 3D 使用方法因软件不同而异,建议您根据自己的需求选择适合的软件并学习相关的教程和文档。一般来说,使用 3D 动画软件需要掌握基本的 3D 建模、动画、渲染等技巧。如果您是初学者,建议您先学习一些基础知识,然后再开始实际操作。 ### 回答2: 3D动画制作软件有很多种,以下是其中几种常用的软件及其使用方法: 1. Autodesk Maya:这是一款功能强大的3D动画和视觉效果软件。用户可以使用Maya创建高质量的动画、虚拟现实和虚拟人物,并且可以进行渲染、动态模拟、模型建模等操作。使用者可以通过学习软件内置的工具和功能,或者参相关的培训课程,掌握Maya的使用技巧。 2. Blender:这是一款免费、开源的3D建模和动画软件。Blender与其他功能强大的商业软件相媲美,可以用于建模、动画、渲染、合成和运动跟踪等方面的工作。用户可以通过学习相关的教程、参与社区讨论等途径,了解Blender的使用方法,并且通过实践来掌握技巧。 3. Cinema 4D:这是一款专业的三维建模、动画和渲染软件。Cinema 4D提供了一系列强大的工具,可以用于创建各种类型的动画和特效。用户可以通过学习软件的界面和工具栏,阅读相关的文档或教程,或者参相关的培训课程,来熟悉和掌握Cinema 4D的使用方法。 4. 3ds Max:这是一款专业的三维建模、动画和渲染软件,由Autodesk公司开发。用户可以使用3ds Max来创建复杂的场景、角色和特效,并且可以进行渲染和动画制作。学习3ds Max可以通过参培训课程、参考官方文档或教程等方式进行。 总而言之,3D动画制作软件有很多种,每种软件都提供了各种功能和工具,用户可以根据自己的需求和个人偏好选择适合自己的软件,并通过学习相关的教程和培训课程等方式,来掌握软件的使用方法。 ### 回答3: 3D动画制作软件是一种用于创建三维动画的工具。常见的3D动画制作软件包括Maya、3ds Max、Blender等。 Maya是由奥特奇公司开发的一款专业级别的3D动画制作软件。使用Maya,用户可以创建高质量的三维动画,从建模、材质贴图,到动画制作和特效添,都可以在Maya中完成。Maya拥有强大的建模工具和动画编辑器,用户可以用它们创建各种三维场景,并通过动画曲线编辑器制作流畅的动画效果。 3ds Max是由欧特克公司开发的另一款专业级别的3D动画制作软件。它具有强大的建模和渲染功能,可以实现高质量的三维效果。用户可以通过3ds Max来创建复杂的角色模型、场景设计、特效制作等。3ds Max还有动画套件和粒子系统,可以帮助用户创造逼真的动画效果。 Blender是一款免费和开源的3D动画制作软件,拥有强大的建模、渲染和动画编辑功能。用户可以使用Blender创建各种艺术作品和动画片,包括角色动画、场景渲染等。Blender还有一个活跃的社区,用户可以分享和学习其他人的作品和技巧。 使用这些3D动画制作软件,一般需要具备一定的计算机图形学知识和艺术创作能力。用户可以通过教程、培训班和在线资源学习这些软件的使用方法。首先,需要先了解软件的界面和基本工具,然后学习建模、材质贴图和动画编辑等技巧。通过不断的实践和尝试,逐渐掌握这些软件的使用技巧和流程,创作出独特的3D动画作品。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值