css3 变形

标签: css3 变形 | 发表时间:2012-01-21 12:54 | 作者:司徒正美
出处:http://www.cnblogs.com/rubylouvre/

CSS3从IE滤镜偷窍过来的创意,但易用性明显提高了许多。利用这个,我们可以对某个元素进行旋传,缩放,倾斜与位移,并且区分元素类型,无论对块状元素还是内联元素都有效。

rotate(旋转)

  • rotate(angle)
  • rotate3d(x ,y ,z ,angle)
  • rotateX(angle) 单独设定 rX 轴的角度。
  • rotateY(angle) 单独设定 rY 轴的角度。
  • rotateZ(angle) 单独设定 rZ 轴的角度。

其中angle是指旋转角度,如果设置的值为正数表示顺时针旋转,如果设置的值为负数,则表示逆时针旋转。如:transform:rotate(30deg):

IE下可以使用BasicImage滤镜,但其rotate参数有个天然的缺陷只能取四个值

  • 0 不旋转
  • 1 顺时钟旋转90度
  • 2 顺时钟旋转180度
  • 3 顺时钟旋转270度

by 司徒正美

运行代码

这时我们就要动用万能的矩阵滤镜了DXImageTransform.Microsoft.Matrix。

//在IE旋转任意角度 by 司徒正美
      function rorateIt(node,deg){
        //取得末变形前矩形的中点
        var rect = node.getBoundingClientRect(),
        cx1 = (rect.right  - rect.left) / 2, // center x
        cy1 = (rect.bottom - rect.top)  / 2, // center y
        deg2rad =  Math.PI / 180,//角度转弧度
        rad = deg * deg2rad ,
        cos = Math.cos(rad),
        sin = Math.sin(rad);
        var ident  = "DXImageTransform.Microsoft.Matrix";
        node.style.filter = "progid:"+ident +"(M11='1.0',sizingmethod='auto expand')";
        //http://www.satzansatz.de/cssd/onhavinglayout.html
        if(!node.currentStyle.hasLayout){//在IE7中,如果没有获得hasLayout,滤镜会失效
          node.style.writingMode  = "tb-rl";
        }   
        var filter = node.filters.item(ident);
        //  +-------+-------+
        //  |  M11  |  M12  |
        //  +-------+-------+
        //  |  M21  |  M22  |
        //  +-------+-------+
        filter.M11 = cos;          
        filter.M12 = -sin;         
        filter.M21 = sin;           
        filter.M22 = cos;          
        //取得当前中心
        rect = node.getBoundingClientRect();
        var cx = (rect.right  - rect.left) / 2;
        var cy = (rect.bottom - rect.top)  / 2;
        //调整此元素的坐标系,实现CSS3 transform-origin的功能
        node.style.marginLeft = cx1 - cx + "px";
        node.style.marginTop  = cy1 - cy + "px";
   
      }

运行代码

scale(缩放)

  • scale(x,y) 设定 X 轴与 Y 轴的缩放量。
  • scale3d(z) 设定 X 轴、Y 轴与 Z 轴的缩放量。
  • scaleX(x) 单独设定 X 轴的缩放量。
  • scaleY(y) 单独设定 Y 轴的缩放量。
  • scaleZ(z) 单独设定 Z 轴的缩放量。

在IE下,我们可以使用zoom对元素按比例缩放,如果是图片我们还可以使用DXImageTransform.Microsoft.AlphaImageLoader

运行代码

translate(位移)

  • translate(x,y) 设定 X 轴与 Y 轴的偏移量。
  • translate3d(x,y,z) 设定 X 轴、Y 轴与 Z 轴的偏移量。
  • translateX(x) 单独设定 X 轴的偏移量。
  • translateY(y) 单独设定 Y 轴的偏移量。
  • translateZ(z) 单独设定 Z 轴的偏移量。

这相当CSS2.1时原有的相对定位。

运行代码

参考

http://blog.hinablue.me/entry/CSS3-note-css3-transform-matrix-note
http://blog.beyes.tw/500
http://jquery.org.cn/css/css3preview/Transform.html
http://www.useragentman.com/IETransformsTranslator/
https://github.com/heygrady/transform

本文链接

相关 [css3 变形] 推荐:

css3 变形

- - 博客园_Ruby's Louvre
CSS3从IE滤镜偷窍过来的创意,但易用性明显提高了许多. 利用这个,我们可以对某个元素进行旋传,缩放,倾斜与位移,并且区分元素类型,无论对块状元素还是内联元素都有效. rotateX(angle) 单独设定 rX 轴的角度. rotateY(angle) 单独设定 rY 轴的角度. rotateZ(angle) 单独设定 rZ 轴的角度.

CSS3 代码生成工具:Create CSS3

- - 我爱水煮鱼
CSS3 具有相当多的新增属性,而且包括阴影、动画、过渡等华丽的效果. 但是由于 CSS3 出来并没有很久,各个浏览器厂商还在开发中,有些属性仍然会带有实验性前缀. 而且类似制作动画、渐变的 CSS3 代码也相当复杂,一旦写错就会导致出现问题. 为此,有人开发了一个生成 CSS3 代码的工具 Create CSS3.

CSS3 文字渐变

- slackware - 前端观察
之前,我们有发表过CSS文字渐变效果,但是其实那并不是纯粹的基于CSS的渐变,它需要一张半透明渐变的png图片. 今天我们将介绍两种使用CSS3实现实现文字的方法. 嗯,只有webkit浏览器支持,请暂时无视其它浏览器. 在《CSS的未来:一些试验性CSS属性》中,我们提到了这个属性,相对于Firefox只能用svg做mask,webkit则灵活很多,图片和css3渐变均可.

用css3写个logo

- 丸子 - 崔凯,前端开发
演示地址:http://uicss.cn/css3/maxthon-logo.html. 先画一个外框 width: 240px; height: 240px;border-radius: 120px;. 填充背景色background:#b1e4ff;. 描边border:2px solid #789cb6;.

CSS3 pointer-events介绍

- Pstrey - 前端观察
其实早知道这个属性,但是一直没有去研究过. 今天正好在twitter看到这个词,就去研究了下,正好解决了目前遇到的一个小难题,所以分享下. 嗯,其实这是个比较简单的CSS3属性. 在某个项目中,很多元素需要定位在一个地图层上面,这里就要用到很多绝对定位或者相对定位的元素,但是这样的话,这些浮在上面的div或者其它元素一般都会给个宽高,或者relative的元素可以不给宽高,这个时候,这些元素就会盖住下面的地图层,以至于地图层无法操作.

HTML5 & CSS3 研究文档

- Kings - 幸福收藏夹
已经说了好久,一直没把这个文件夹分享出来. 这是我去年第四季度里做的,里面有 11 一个文档. 包括 HTML5 中最主要的 JS API 文档,还有 CSS3 中两个比较难的属性. 主要还停留在纯 API 层面上的研究,没有深入到应用中去. 不过,当做工具来使用,和入门文档,还是不错的. 特别是其中的 HTML5 JS API 文档.

纯CSS3透明水晶盒

- iVane - 前端观察
相信大家有看过这个例子:3D盒子,在书《CSS3 实战》上第282页有个综合实战“设计动态立体盒子”的例子,实现方式跟它一样,我的盒子也是以它为原型来设计的,不过在实现方面有做修改、优化,以及增添了一些细节,下面是我的盒子Firefox截图:. 透明化了盒子,通透性强了,因为透明了,所以背部的三个面也就要做出来了,所以总共6个面,比原作多3个;.

CSS3 基本要素概览

- yasy - 博客园-首页原创精华区
    这篇文章将对 CSS 的几个新属性 (text-shadow,box-shadow,and border-radius) 做基本介绍. 这些 CSS3 属性通常用来加强页面布局. 前面的 3 个值是 RGB 颜色值,最后一个值是透明度的级别(0 = 透明,1 = 不透明). RGBA 可以应用于与颜色的任何属性,如字体颜色,边框颜色,背景颜色,阴影颜色等.

CSS3动画-彩虹列表

- 蛋布丁 - 大猫の意淫筆記
昨天在微薄问了个 JScript 的问题, 李振文同学解答了一下,顺便摸过去,发现他的热门文章列表很淫荡. 于是抄袭了一个分享出来,嘿嘿. 要体验的同学可以用 chrome 在俺 blog 侧边里看到. 鼠标移上去的时候一个个亮起来,移走的时候慢慢消失掉. 颜色可以用 Photoshop 拉好渐变取色.

CSS3动画效果-animate.css

- - WEB前端开发
animate.css 是提供炫酷,有趣,跨浏览器css3动画的网站,你可以在高级项目中使用这些效果,为高级浏览器用户提供更好的交互体验. 动画效果包括强调突出,滑块,淡入淡出,放大缩小等等. 你也可以结合jQuery一起使用,例如$(‘.bouncy’).addClass(‘bounceInDown’); 项目主页:http://daneden.me/animate/ git地址:https://github.com/daneden/animate.css 声明: 本文采用 BY-NC-SA 协议进行授权 | WEB前端开发转载请注明转自《CSS3动画效果-animate.css》.