css3动画基本

Transition:过渡

1>过渡属性:

transition-property  要运动的样式  (all || [attr] || none)
transition-duration 运动时间
transition-delay 延迟时间
transition-timing-function 运动形式
ease:(逐渐变慢)默认值
linear:(匀速)
ease-in:(加速)
ease-out:(减速)
ease-in-out:(先加速后减速)
cubic-bezier 贝塞尔曲线( x1, y1, x2, y2 )

动画工具网址:http://matthewlein.com/ceaser/

过渡属性应用实例:

  <style>

    div{width:100px;height:100px;background:blue;transition:1s;} //参数一:过渡时间为1秒,鼠标划过一1秒内div原样式发生改变(过渡时间,可以是秒-s,或者是毫秒ms)

    div{width:100px;height:100px;background:blue;transition:1s 2s;} //参数二:延迟2秒,执行过渡1秒的效果(延迟时间)

    div{width:100px;height:100px;background:blue;transition:1s 2s width;} //参数三:只让width属性发生1秒过渡(要运动的样式) 注:运动样式,使用‘ , ‘隔开,可以一次写多个控制;如:1s width,2s height,3s background;

    div{width:100px;height:100px;background:blue;transition:1s 2s width ease-out;} //参数四:width发生1秒过渡,以减速形式过渡 (运动形式)

    div:hover{width:200px;height:200px;background:red;}

</style>

  <div></div>

2>过渡完成事件:

(a).监听事件:
Webkit内核: obj.addEventListener(‘webkitTransitionEnd‘,function(){},false);
firefox: obj.addEventListener(‘transitionend‘,function(){},false);

(b).删除监听事件:

Webkit内核: obj.removeEventListener(‘webkitTransitionEnd‘,function(){},false);
firefox: obj.removeEventListener(‘transitionend‘,function(){},false);

完成事件应用示例:

  <style>.box{width:100px;height:100px;background:red; transition:1s width;}</style>

  <divclass="box" id="box"></div>
  <script>
    var oBox=document.getElementById("box");
    oBox.onclick=function(){
      this.style.width=this.offsetWidth+100+"px";
    };
    addEnd(oBox,function(){ //当过渡完成后,触发addEnd事件       
      alert("end");
    });
    function addEnd(obj,fn) {
      obj.addEventListener(‘WebkitTransitionEnd‘,fn,false); //监听过渡后的事件
      obj.addEventListener(‘transitionend‘,fn,false);
    }

    function removeEnd(obj,fn) {       
      obj.removeEventListener(‘WebkitTransitionEnd‘,fn,false); //删除监听过渡后的事件      
      obj.removeEventListener(‘transitionend‘,fn,false);   
    }
  </script>

2D变换

transform:

1>transform属性:

rotate()  旋转函数 取值度数     deg  度数
Transform-origin 旋转的基点
skew() 倾斜函数 取值度数
   skewX()  skewY()
scale() 缩放函数 取值 正数、负数和小数
   scaleX()  scaleY()
translate() 位移函数
   translateX()   translateY()

属性应用实例:

  <style>

    div{width:100px;height:100px;background:red;transition:2s;} //注意:transform必须要配合transition使用,否则看不到效果

    div:hover{-webkit-transform:roate(360deg);} //旋转360度

    div:hover{-webkit-transform:skewX(45deg);} //横向倾斜45度  skewY:为纵向倾斜;

     div:hover{-webkit-transform:scale(1.1);} //放大1.1倍  scale:横向和纵向同时放大;scaleX:只横向放大; scaleY:只纵向放大

    div:hover{-webkit-transform:translate(200px);} //横向位移200px  接收两个参数,第一个是横向,第二个是纵向

</style>

  <div></div>

2>Transform 执行顺序问题 — 后写先执行

3>matrix(a,b,c,d,e,f) 矩阵函数
     a.通过矩阵实现缩放
    x轴缩放 a=x*a    c=x*c     e=x*e;
    y轴缩放 b=y*b   d=y*d     f=y*f;
  b.通过矩阵实现位移
    x轴位移: e=e+x
    y轴位移: f=f+y
  c.通过矩阵实现倾斜
    x轴倾斜: c=Math.tan(xDeg/180*Math.PI)
    y轴倾斜: b=Math.tan(yDeg/180*Math.PI)
  d.通过矩阵实现旋转
    a=Math.cos(deg/180*Math.PI);
    b=Math.sin(deg/180*Math.PI);
    c=-Math.sin(deg/180*Math.PI);
    d=Math.cos(deg/180*Math.PI);
4>变换兼容IE9以下IE版本只能通过矩阵来实现
filter: progid:DXImageTransform.Microsoft.Matrix( M11= 1, M12= 0, M21= 0 , M22=1,SizingMethod=‘auto expand‘);
IE下的矩阵没有E和F两个参数 M11==a; M12==c; M21==b; M22==d

时间: 2024-10-05 03:22:03

css3动画基本的相关文章

CSS3学习(CSS3过渡、CSS3动画)

CSS3过渡:transition属性--专门应对颜色.长度.宽度.位置等变化的过渡 通过CSS3,我们可以在不使用Flash和JavaScript的情况下,为当前某元素从某样式改变为某样式的时候添加过渡效果.我们仅仅使用到了一个transition属性,专门来写过渡从一个样式到另一个样式过渡时所花费的时间,以秒为单位.若时长不规定,默认为0,即没有过渡时间.在使用这个过渡效果的时候,我们使用了类似于超链接的l(link).v(visited).h(hover).a(active)样式的控制.此

css3动画--边框线条动画

网上看到一个css3动画,地址 最开始思路是,里面一个DIV方块,右上角一个同样大小的div1,向上,向右平移8px,设div1的border-top,border-right值形成,如图所示 再用clip截取一半,形成半折角. 同理左下角建一个div,向左.向下平移8px,设border-left,border-bottom值,用clip截取形成 <div class="cont"> <div class="bb"></div>

css3动画animate.css的使用

简介 animate.css 是一个来自国外的 CSS3 动画库,它预设了抖动(shake).闪烁(flash).弹跳(bounce).翻转(flip).旋转(rotateIn/rotateOut).淡入淡出(fadeIn/fadeOut)等多达 60 多种动画效果,几乎包含了所有常见的动画效果. 虽然借助 animate.css 能够很方便.快速的制作 CSS3 动画效果,但还是建议看看 animate.css 的代码,也许你能从中学到一些东西. 在使用animate.css的时候通常都会搭配

css3动画详解

一.Keyframes介绍: Keyframes被称为关键帧,其类似于Flash中的关键帧.在CSS3中其主要以"@keyframes"开头,后面紧跟着是动画名称加上一对花括号"{-}",括号中就是一些不同时间段样式规则. @keyframes changecolor{ 0%{ background: red; } 100%{ background: green; }} 示例:创建一个动画名叫"changecolor",在"0%&quo

css3动画由浅入深总结

回到顶部 一:过渡动画---Transitions 一:过渡动画---Transitions 含义:在css3中,Transitions功能通过将元素的某个属性从一个属性值在指定的时间内平滑过渡到另一个属性值来实现动画功能. Transitions属性的使用方法如下所示: transition: property | duration  | timing-function | delay transition-property: 表示对那个属性进行平滑过渡. transition-duratio

CSS3 动画

通过 CSS3,我们能够创建动画,这可以在许多网页中取代动画图片.Flash 动画以及 JavaScript. CSS3 @keyframes 规则 如需在 CSS3 中创建动画,您需要学习 @keyframes 规则. @keyframes 规则用于创建动画.在 @keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果. 浏览器支持 属性 浏览器支持 @keyframes           animation           Internet Explo

CSS3动画:transition和animation(一)

1.浏览器支持情况 transform: transition: animation: 2.分别介绍他们的用法 transform 属性向元素应用 2D 或 3D 转换.该属性允许我们对元素进行旋转.缩放.移动或倾斜,即可以改变元素的形状. 语法为transform: none|transform-functions;具体的方法参见 W3CSchool上的CSS3 transform 属性介绍 transition 属性是一个简写属性,用于设置四个过渡属性: transition-propert

CSS3——动画效果

CSS3动画在Style里面就实现了以往我们用JQ写的动画效果,着实简便了不少~ 简单Demo: html代码: <div id="dv1"></div> CSS3代码: <style type="text/css"> #dv1{width:100px;height:100px;border:1px solid blue;-webkit-animation:myfirst 3s;position:relative;} @webki

高性能 CSS3 动画

高性能移动Web相较PC的场景需要考虑的因素也相对更多更复杂,我们总结为以下几点: 流量.功耗与流畅度. 在PC时代我们更多的是考虑体验上的流畅度,而在Mobile端本身丰富的场景下,需要额外关注对用户基站网络流量使用的情况,设备耗电量的情况. 关于流畅度,主要体现在前端动画中,在现有的前端动画体系中,通常有两种模式:JS动画与CSS3动画. JS动画是通过JS动态改写样式实现动画能力的一种方案,在PC端兼容低端浏览器中不失为一种推荐方案. 而在移动端,我们选择性能更优浏览器原生实现方案:CSS

关于JS动画和CSS3动画的性能差异

本文章为综合其它资料所得. 根据Google Developer,Chromium项目里,渲染线程分为main thread和compositor thread.如果CSS动画只是改变transforms和opacity,这时整个CSS动画得以在compositor thread完成(而JS动画则会在main thread执行,然后触发compositor进行下一步操作)在JS执行一些昂贵的任务时,main thread繁忙,CSS动画由于使用了compositor thread可以保持流畅,可