`
jjfat
  • 浏览: 285681 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CSS动画VS. Web动画API

阅读更多

 


众所周知,JavaScript有一个原生动画API,叫做Web Animations API。在接下来的文章中,我们将简称为WAAPI。

 

在本文中,我们将从各个方面来比较WAPPI和CSS中的动画。各位看官可自行判断其中哪个更好,哪个有所欠缺。

 

WAAPI的基础知识

 

如果你曾经使用jQuery  .animate(),WAAPI的基本语法应该看起来很熟悉。 

 

var element = document.querySelector('.animate-me');
element.animate(keyframes, 1000);

 

animate方法接受两个参数:keyframes和duration。与jQuery不同的是,它不仅具有内置在浏览器中的优点,而且性能也更好。

 

第一个参数,keyframes应该是一个对象数组。每个对象都是我们动画中的一个keyframe。这是一个简单的例子:

 

var keyframes = [
  { opacity: 0 },
  { opacity: 1 }
];

 

第二个参数,duration,是我们想要动画持续多久。在上面的例子中是1000毫秒。我们来看一个更令人兴奋的例子。

 

 

#用WAAPI重新创建animista CSS动画

 

有一些被称为“模糊的幻灯片”入场动画的东西。看起来很可爱。

 

以下是CSS中的keyframes:

 

0% {
  transform: translateY(-1000px) scaleY(2.5) scaleX(.2);
  transform-origin: 50% 0;
  filter: blur(40px);
  opacity: 0;
}
100% {
  transform: translateY(0) scaleY(1) scaleX(1);
  transform-origin: 50% 50%;
  filter: blur(0);
  opacity: 1;
}

 

WAAPI中的代码相同:

 

var keyframes = [
  { 
    transform: 'translateY(-1000px) scaleY(2.5) scaleX(.2)', 
    transformOrigin: '50% 0', filter: 'blur(40px)', opacity: 0 
  },
  { 
    transform: 'translateY(0) scaleY(1) scaleX(1)',
    transformOrigin: '50% 50%',
    filter: 'blur(0)',
    opacity: 1 
  }
];

 

我们已经看到将keyframes应用到要动画的任何元素是多么容易:

 

element.animate(keyframes, 700);

 

为了简单起见,我只指定了duration。但是,我们可以使用这个第二个参数来传递更多的选项。至少我们也应该指定一个easing。以下是可用选项的完整列表,其中包含一些示例值:

 

var options = {
  iterations: Infinity,
  iterationStart: 0,
  delay: 0,
  endDelay: 0,
  direction: 'alternate',
  duration: 700,
  fill: 'forwards',
  easing: 'ease-out',
}
element.animate(keyframes, options);

 

有了这些选项,我们的动画将从头开始,没有任何延迟,循环永远在向前和向后播放。

   点我查看代码以及效果!!!

更多请点击这里:http://igeekbar.com/igeekbar/post/245.htm

分享到:
评论

相关推荐

    animate(CSS动画库)

    在Animate.css 4.1.1版本中,可能还增加了对新的浏览器特性的支持,比如Web Animations API,这将进一步提高性能和动画的控制能力。同时,开发者社区可能会贡献更多定制的动画效果,以满足不同项目的需求。 总之,...

    vue.js动画需要的animate.css和velocity.js

    Animate.css 提供了即用型的CSS动画,而Velocity.js 则提供更底层的JavaScript动画控制。两者各有优势,可以根据项目需求和开发者偏好进行选择。在实际开发中,可能需要根据项目性能需求和动画复杂性来决定使用哪个...

    手机app页面转换css3动画特效.zip

    总的来说,"手机app页面转换css3动画特效.zip" 提供了一个实用的工具包,让开发者能够利用现代Web技术创造出富有吸引力和互动性的移动应用界面。通过深入理解并应用其中的代码和概念,开发者可以提升其应用的视觉...

    时光隧道穿梭动画CSS3特效.zip

    总的来说,"时光隧道穿梭动画CSS3特效.zip"是一个很好的学习和实践CSS3动画的资源,它展示了如何利用现代Web技术创造引人入胜的用户体验。对于希望提升网页设计水平或探索CSS3高级功能的开发者来说,这是一个...

    Web.Programming.with.HTML5.CSS.and.JavaScript

    使用CSS动画增强用户体验。 3. **JavaScript**:实现动态效果,如表单验证、Ajax请求等;结合jQuery等库简化DOM操作;利用React或Vue构建复杂的用户界面。 通过综合运用HTML5、CSS与JavaScript,可以开发出既美观又...

    2016奥运会小人骑自行车CSS3动画.zip

    在这个小人骑自行车的动画中,CSS3的动画特性被充分利用,通过`@keyframes`规则定义了动画的不同阶段,实现了小人骑行的动作,包括腿部的蹬踏、身体的摇摆和自行车的移动等。 2. **JavaScript**:JavaScript是一种...

    HTML5 CSS3自行车动画特效.rar

    HTML5和CSS3是现代网页开发的两大核心技术,它们极大地扩展了Web开发的可能性,使得...这个自行车动画实例展示了HTML5和CSS3在现代网页设计中的强大潜力,对于学习和实践Web前端技术的人来说,是一个很好的学习资源。

    html5仿微信聊天语音发送话筒录音动画特效.zip

    5. **CSS3**:为了实现动画效果,CSS3的属性如`transition`和`animation`可能会被用到。它们允许元素在特定时间内平滑地改变样式属性,创建出过渡和动画效果。 6. **响应式设计**:由于该项目是为移动端设计的,...

    CSS3淘宝支付成功打勾动画代码.zip

    在Web开发中,动画效果往往能提升用户体验,尤其是在电商网站上,支付成功后的反馈是用户关心的关键环节。这个"CSS3淘宝支付成功打勾动画代码"是一个实现此类反馈效果的例子。通过CSS3的动画特性,我们可以创建出...

    three.js全息光影动画特效.zip

    9. **CSS特效**:可能使用CSS3的transform和transition属性,或者CSS动画来增强2D元素的视觉效果,使之与3D场景相融合。 10. **jQuery整合**:使用jQuery简化DOM操作,例如响应用户事件,或者同步3D场景与页面其他...

    CSS3的炫酷文字动画特效.

    在现代网页设计中,CSS3已经成为了不可或缺的一部分,它提供了丰富的样式和强大的动画效果,让网页变得更加生动和吸引人。本篇文章将详细讲解如何利用CSS3的特性以及Anime.js库来实现炫酷的文字动画特效。 首先,...

    CSS3手势变换动画特效.zip

    总之,通过熟练掌握CSS3的变换和动画,配合JavaScript和jQuery的事件处理,开发者能够创造出引人入胜的Web应用和网站,提供超越传统静态页面的互动体验。HTML5的新特性则进一步扩展了这种可能性,使Web开发更加生动...

    chm文档jquery,css3...

    CSS2.0_API_2002.chm和CSS2.0_API_2002.chw可能是同一份文档的不同版本,详细介绍了CSS2.0规范,尽管CSS3已经发布,但理解CSS2.0的基础对于学习CSS3至关重要。开发者可以从中学习如何创建响应式设计、定义盒模型、...

    API集合CSS.JS.JQ.SSHHTML5.XMLHTTP

    CSS2.0和CSS3.0是其主要版本,CSS3.0增加了更多的选择器、动画和过渡效果,以及媒体查询等功能,使网页设计更为灵活和响应式。 2. **JavaScript**(JS):是一种广泛应用于客户端Web开发的脚本语言,通常与HTML和...

    HTML5+CSS3卡通动画特效.zip

    HTML5和CSS3是现代网页开发的两大核心技术,它们为创建动态、交互性强的卡通动画效果提供了无限可能。...同时,这也为开发者提供了实践和探索Web动画原理与技巧的机会,进一步提升他们的专业技能。

    CSS.design.prospects.voting.module..rar_voting

    投票模块需要有吸引人的交互设计,例如,使用CSS动画来增强用户体验,如按钮的鼠标悬停效果、投票结果的动态显示等。通过伪类(:hover, :active, :focus)和关键帧动画(@keyframes),可以实现这些功能,让界面更加...

    jQuery CSS3酷炫网页文字动画特效.zip

    jQuery库以其简洁的API和强大的功能,成为JavaScript开发中不可或缺的一部分,而CSS3的新特性则提供了丰富的动画效果。"jQuery CSS3酷炫网页文字动画特效.zip"就是将这两者巧妙结合,为网页的文字展示带来独特的视觉...

    jQuery+animate.css自定义弹窗动画插件.zip

    《jQuery结合animate.css实现自定义弹窗动画插件详解》 ...通过学习和实践这个例子,开发者可以掌握如何运用jQuery进行事件处理、动画控制,以及如何结合animate.css创建丰富的动态效果,进一步提升自己的Web开发技能。

    Repaintless.css-轻量级高性能的CSS3动画库

    Repaintless.css是一款专为优化CSS3动画性能而设计的轻量级库。在Web开发中,CSS3动画经常被用来提升用户体验,但不恰当的使用可能会导致页面频繁...通过合理利用其特性,开发者可以创建出既美观又高效的Web动画效果。

    Three.js线条光波动画特效.zip

    Three.js是JavaScript的一个开源库,它为开发者提供了在Web浏览器中进行3D图形编程的能力,无需深入学习底层的WebGL API。 首先,理解Three.js的基本概念至关重要。Three.js提供了一个完整的框架,包括场景(Scene)...

Global site tag (gtag.js) - Google Analytics