zoukankan      html  css  js  c++  java
  • CSS3之过渡及2D变换

    transition过渡
    transition-duration:; 运动时间
    transition-delay:; 延迟时间
    transition-timing-function:; 运动形式
              ease 逐渐变慢 (默认)
              linear 匀速
              ease-in 加速
              ease-out 减速
              ease-in-out 先加速后减速
              cubic-bezier 贝塞尔曲线(x1,y1,x2,y2) 通过控制曲线走势来改变运动效果

    注:多样式同时进行过渡(需要异步过渡 则需在完成时间后再加一个参数:延迟时间)

    例:transition:1s width,2s 1s height,3s 3s background;

    transitionend事件(transition结束后触发的事件)
    注意:1.每改变元素一个样式 会触发一次tranasitionend

    在webkit内核中写法:
    obj.addEventListener('WebkitTransitionEnd',fn,false);
    在标准下写法:
    obj.addEventListener('transitionend',fn,false);

    -transform:; 变换
    rotate(30deg) 旋转 围绕元素中心点旋转30度
    skewX(45deg) 斜切 沿X轴向左拉伸45度
    skewY(45deg) 斜切 沿Y轴向上拉伸45度
    综合写法 skew(45deg,45deg)
    scaleX(2) 缩放 由中心点沿X轴向外扩展2倍
    scaleY(0.5) 缩放 由中心点沿Y轴向内收缩2倍
    综合写法 scale(2,0.5)
    translateX(100px) 位移 从左往右移动100px
    translateY(-100px) 位移 从下往上移动100px
    综合写法 translate(100px,-100px)

    注:transform 执行顺序 -- 后写先执行!

    例:-webkit-transform:translateX(100px) scale(0.5); 与 -webkit-transform:scale(0.5) translateX(100px);

      第一条样式先缩放0.5倍 再执行位移100px
      第二条样式先执行平移100px 再缩放0.5倍 这时100px会随着缩放被缩放成50px

    -transform-origin:; 变换基点
    其值可为像素也可为关键字

    -transform:matrix(); 矩阵
    旋转 位移 缩放 斜切 都是通过matrix封装实现

    matrix(1,0,0,1,0,0) 标准下 默认6个参数
    (

    matrix(a,b,c,d,e,f);

    缩放
    a,c,e表示X轴缩放 X轴缩放:a:a*缩放倍数 c:c*缩放倍数 e:e*缩放倍数 (e/c默认为0);
    b,d,f表示Y轴缩放 Y轴缩放:b:b*缩放倍数 d:d*缩放倍数 f:f*缩放倍数 (f/d默认为0);

    斜切
    c同时表示X轴斜切 c=Math.tan(Deg/180*Math*PI)
    b同时表示Y轴斜切 b=Math.tan(Deg/180*Math*PI)

    位移
    e:X轴的位移 位移的长度e+x;(e,f默认值为0)
    f:Y轴的位移 位移的长度f+y;

    旋转
    a/b/c/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)
    )
    兼容IE6及以上 缺少位移2个参数
    progid:DXImageTransform.Microsoft.Matrix( M11= 1, M12= 0, M21= 0 , M22=1,SizingMethod='auto expand');
    Matrix( M11= a, M12= c, M21= b , M22=d,SizingMethod='auto expand');
    (

    注意 IE下旋转不是围绕元素中心点旋转
    解决方案:控制元素left/top;
    left = (父级offsetWidth-本身offsetWidth)/2
    top = (父级offsetHeight-本身offsetHeight)/2
    )

  • 相关阅读:
    hdu 4002 Find the maximum
    hdu 2837 坑题。
    hdu 3123
    zoj Treasure Hunt IV
    hdu 2053 Switch Game 水题一枚,鉴定完毕
    poj 1430 Binary Stirling Numbers
    hdu 3037 Saving Beans
    hdu 3944 dp?
    南阳oj 求N!的二进制表示最低位的1的位置(从右向左数)。
    fzu 2171 防守阵地 II
  • 原文地址:https://www.cnblogs.com/dreamerC/p/6224443.html
Copyright © 2011-2022 走看看