css3贝塞尔曲线

http://yisibl.github.io/cubic-bezier/#.17,.67,.94,.53

前言

在了解 cubic-bezier 之前,你需要对 CSS3 中的动画效果有所认识,它是 animation-timing-functiontransition-timing-function 中一个重要的内容。

本体

简介

cubic-bezier 又称三次贝塞尔,主要是为 animation 生成速度曲线的函数,规定是 cubic-bezier(<x1>, <y1>, <x2>, <y2>)

我们可以从下图中简要理解一下 cubic-bezier

从上图我们需要知道的是 cubic-bezier 的取值范围:

  • P0:默认值 (0, 0)
  • P1:动态取值 (x1, y1)
  • P2:动态取值 (x2, y2)
  • P3:默认值 (1, 1)

我们需要关注的是 P1 和 P2 两点的取值,而其中 X 轴的取值范围是 01,当取值超出范围时 cubic-bezier 将失效;Y 轴的取值没有规定,当然也毋须过大。

最直接的理解是,将以一条直线放在范围只有 1 的坐标轴中,并从中间拿出两个点来拉扯(X 轴的取值区间是 [0, 1],Y 轴任意),最后形成的曲线就是动画的速度曲线

使用

在测试例子中:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
  <meta charset="UTF-8">
  <title>Document</title>

  <style>
    .animation {
      width: 50px;
      height: 50px;
      background-color: #ed3;
      -webkit-transition:  all 2s;
           -o-transition:  all 2s;
              transition:  all 2s;
    }
    .animation:hover {
      -webkit-transform:  translateX(100px);
          -ms-transform:  translateX(100px);
           -o-transform:  translateX(100px);
              transform:  translateX(100px);
    }
  </style>
</head>
<body>
  <div class="animation"></div>
</body>
</html>

我们可以在浏览器中看到,当鼠标移到元素上时,元素开始向右移动,开始比较慢,之后则比较快,移开时按原曲线回到原点。

在例子中,当我们不为 transition 添加 cubic-bezier 或是其他 timing-function 时,默认的速度曲线是 ease,此时的速度曲线是:

那么让我们在代码中加入 cubic-bezier(.17, .86, .73, .14)

...
.animation {
  ...
  -webkit-transition:  all 2s cubic-bezier(.17, .86, .73, .14);
       -o-transition:  all 2s cubic-bezier(.17, .86, .73, .14);
          transition:  all 2s cubic-bezier(.17, .86, .73, .14);
}
...

再刷新页面观察效果,会看到动画在执行过程中有一段很缓慢的移动,前后的速度相似,此时的运动曲线是:

几个常用的固定值对应的 cubic-bezier 值以及速度曲线

  1. ease:cubic-bezier(.25, .1, .25, 1)

  2. liner:cubic-bezier(0, 0, 1, 1) / cubic-bezier(1, 1, 0, 0)

  3. ease-in:cubic-bezier(.42, 0, 1, 1)

  4. ease-out:cubic-bezier(0, 0, .58, 1)

  5. ease-in-out:cubic-bezier(.42, 0, .58, 1)

  6. In Out . Back(来回的缓冲效果):cubic-bezier(0.68, -0.55, 0.27, 1.55)


作者:Jovey链接:http://www.jianshu.com/p/d999f090d333來源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
时间: 2024-10-19 12:45:50

css3贝塞尔曲线的相关文章

css3 贝塞尔曲线动画

上面图标初始加载的时候,呈:奇数从左上淡现,偶数车左下呈现. <div> <ul class="trantion" v-for="(item,index) in dataLI" @click="handelIdex(index)"> <li :class="'trantiones'+ (intx == index ? 'actives' : '')">{{item.name}}</li

CSS3 贝塞尔曲线实现

cubic-bezier 曲线是 css3 动画的一个重要基石.另一个为 steps (ease 等都是 cubic-bezier 的特殊形式),css3 中的 cubic_bezier 曲线限制了首尾两控制点的位置,通过调整中间两控制点的位置可以灵活得到常用的动画效果,同时 canvas 也进行了相应的支持,也存在相应的工具可以根据想要的曲线得到对应 cubic bezier 曲线的控制点参数. 而 ie(6-9) 却没有相应的支持,为了能在各个平台得到一致的动画效果,则不可避免要在 ie 上

cubic-bezier贝塞尔曲线css3动画工具

今天在一本叫<HTML5触摸界面设计与开发>上看到一个做弹跳球的复杂动画效果,首先加速下降,停止,然后弹起时逐渐减速.是用cubic-bezier贝塞尔曲线来完成的.所以特地去学习了一下关于cubic-bezier贝塞尔曲线. cubic-bezier比较少用,因为PC端中,有浏览器不兼容.但是手机端中,可以使用并带来炫酷的动画及体验. 缓动函数:http://www.xuanfengge.com/easeing/easeing/ cubic-bezier:http://cubic-bezie

贝塞尔曲线与CSS3动画、SVG和canvas的应用

简介 贝塞尔曲线是可以做出很多复杂的效果来的,比如弹跳球的复杂动画效果,首先加速下降,停止,然后弹起时逐渐减速的效果. 使用贝塞尔曲线常用的两个网址如下: 缓动函数:http://www.xuanfengge.com/easeing/easeing/ cubic-bezier:http://cubic-bezier.com/ 如何用贝塞尔曲线画曲线 一个标准的3次贝塞尔曲线需要4个点:起始点.终止点(也称锚点)以及两个相互分离的中间点. 无论SVG, Canvas还是CSS3动画,都牵扯到这4个

css3动画——常用的贝塞尔曲线

最近在做css3动画的时候感觉默认的几种动画缓动效果已经不足够满足要求了,所以想起整理一下贝塞尔常用的一些曲线,用于以后使用 曲线参考:http://cubic-bezier.com/,http://easings.net/zh-cn# 常用的贝塞尔曲线如下: ps:并不是所有的缓动函数都有贝塞尔曲线,jquer 的easing的大部分是有的,但是变化比较剧烈的几种就没有了 $easeInSine: cubic-bezier(0.47, 0, 0.745, 0.715); $easeOutSin

JS模拟CSS3动画-贝塞尔曲线

一.什么是贝塞尔曲线 1962年,法国工程师皮埃尔·贝塞尔(Pierre Bézier),贝塞尔曲线来为为解决汽车的主体的设计问题而发明了贝塞尔曲线.如今,贝赛尔曲线是计算机图形学中相当重要的一种曲线,它能过优雅地模拟人手绘画出的线.它通过控制曲线上的点(起始点.终止点以及多个参考点)来创造.编辑图形.其中起重要作用的是位于曲线中央的控制线.这条线是虚拟的,中间与贝塞尔曲线交叉,两端是控制端点.移动两端的端点时贝塞尔曲线改变曲线的曲率(弯曲的程度):移动中间点(也就是移动虚拟的控制线)时,贝塞尔

CSS3动画常用贝塞尔曲线-效果演示

CSS与贝塞尔曲线 CSS3动画常用贝塞尔曲线实现更加自然,物理感的动画. 列举了一些常见的贝塞尔曲线数值,用于做动画的存档. .a1{ animation: stretch 1s cubic-bezier(0.39, 0.575, 0.565, 1) infinite; } .a2{ animation: stretch 1s cubic-bezier(0.55, 0.055, 0.675, 0.19) infinite; } .a3{ animation: stretch 1s cubic-

深度掌握SVG路径path的贝塞尔曲线指令

一.数字.公式.函数.变量,哦,NO! 又又一次说起贝塞尔曲线(英语:Bézier curve,维基百科详尽中文释义戳这里),我最近在尝试实现复杂的矢量图形动画,发现对贝塞尔曲线的理解馒头那么厚,是完全不能承受富有创意的创作的,至少得有我当年追我老婆的脸皮厚才行. 然而,瞅瞅维基百科上的释义,或者其他一些相关的技术文章,总是离不开各种公式,一大堆变量……例如下面维基截图缩略图: 完全是数学爱好者的菜啊!我想,要是让UI设计师们去学习这些东西,估计还不如一刀来个痛快的! 这就是爱好领域与能力掌握的

【转~】初识贝塞尔曲线(B&#233;zier curve)

本文图文大多转自http://www.html-js.com/article/1628 QAQ我居然去扒维基,,,看不懂啊,,,我要去补数学,,, 在做变形小鸡的时候用到CSS3 transition-timing-function 属性,其语法如下: transition-timing-function: linear|ease|ease-in|ease-out|ease-in-out|cubic-bezier(n,n,n,n); 总而言之可以用cubic-bezier(n,n,n,n)的形式