transform应用详解

关于css3的transform,做了一个demo,上代码

html:

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4 <link rel="stylesheet" href="practice.css" type="text/css" >
 5 <script src="../js/jquery-2.1.1.min.js" type="text/javascript" ></script>
 6 <meta charset="UTF-8">
 7 <title>transform</title>
 8 </head>
 9 <body>
10 <div class="container">
11   <div class="out">
12       <ul>
13          <li class="in"><img src=‘1.jpg‘ /></li>
14          <li class="in"><img src=‘2.jpg‘ /></li>
15          <li class="in"><img src=‘3.jpg‘ /></li>
16          <li class="in"><img src=‘4.jpg‘ /></li>
17          <li class="in"><img src=‘5.jpg‘ /></li>
18       </ul>
19   </div>
20   <div class="control">
21      <div class=‘detail‘>
22         <span>transform-style:&nbsp;&nbsp;&nbsp;flat:<input type="radio" name=‘style‘ value=‘flat‘/>&nbsp;&nbsp;&nbsp;preserve-3d:<input type="radio" name=‘style‘ value=‘preserve-3d‘ /></span>
23         <p>你选择transform_style为<span></span></p>
24      </div>
25      <div class=‘detail‘>
26         <span>perspective:</span><input name=‘perspective‘ type="range" min=‘0‘ max=‘800‘ value=‘0‘ step=‘1‘/>
27         <p>你选择的perspective值为<span></span></p>
28      </div>
29      <div class=‘detail‘>
30         <span>translateX:</span><input name=‘translateX‘  type="range" min=‘0‘ max=‘50‘ value=‘0‘ step=‘1‘/>
31         <p>你选择的translateX值为<span></span></p>
32      </div>
33      <div class=‘detail‘>
34         <span>translateY:</span><input name=‘translateY‘ type="range" min=‘0‘ max=‘50‘ value=‘0‘ step=‘1‘/>
35         <p>你选择的translateY值为<span></span></p>
36      </div>
37      <div class=‘detail‘>
38         <span>translateZ:</span><input name=‘translateZ‘ type="range" min=‘0‘ max=‘50‘ value=‘0‘ step=‘1‘/>
39         <p>你选择的translateZ值为<span></span></p>
40      </div>
41      <div class=‘detail‘>
42         <span>rotateX:</span><input name=‘rotateX‘ type="range" min=‘0‘ max=‘180‘ value=‘0‘ step=‘1‘/>
43         <p>你选择的rotateX值为<span></span></p>
44      </div>
45      <div class=‘detail‘>
46         <span>rotateY:</span><input name=‘rotateY‘ type="range" min=‘0‘ max=‘180‘ value=‘0‘ step=‘1‘/>
47         <p>你选择的rotateY值为<span></span></p>
48      </div>
49      <div class=‘detail‘>
50         <span>rotateZ:</span><input name=‘rotateZ‘ type="range" min=‘0‘ max=‘180‘ value=‘0‘ step=‘1‘/>
51         <p>你选择的rotateZ值为<span></span></p>
52      </div>
53   </div>
54 </div>

css比较简单,就不上了

js:

<script>
$(function(){
    var transform_style=‘flat‘,translateX=‘0px‘,translateY=‘0px‘,translateZ=‘0px‘,perspective=‘0px‘,rotateX=0,rotateY=0,rotateZ=0;
    $("input").on(‘change‘,function(){
        if($(this).attr(‘name‘)===‘style‘){
            if($(this).is(":checked")){
                transform_style=$(this).val();
                $("ul").css({"transform-style":transform_style});
                $(this).parent().siblings(‘p‘).find(‘span‘).text(transform_style)    ;
            }
        }else{
            var change=$(this).attr(‘name‘);
            var val=$(this).val();
            switch(change){
                case ‘perspective‘:
                    perspective=val+‘px‘;
                    break;
                case ‘translateX‘:
                    translateX=val+‘px‘;
                    break;
                case ‘translateY‘:
                   translateY=val+‘px‘;
                   break;
                case ‘translateZ‘:
                   translateZ=val+‘px‘;
                   break;
                case ‘rotateX‘:
                    rotateX=val;
                    break;
                case ‘rotateY‘:
                   rotateY=val;
                   break;
                case ‘rotateZ‘:
                   rotateZ=val;
                   break;
            }
            $(this).siblings(‘p‘).find(‘span‘).text(val);
            $(‘.in‘).css({‘-webkit-transform‘:‘perspective(‘+perspective+‘) translate3d(‘+translateX+‘,‘+translateY+‘,‘+translateZ+‘) rotateX(‘+rotateX+‘deg) rotateY(‘+rotateY+‘deg) rotateZ(‘+rotateZ+‘deg)‘})
        }
    })
})
</script>
时间: 2024-08-07 16:40:36

transform应用详解的相关文章

CSS3 transform 属性详解(skew, rotate, translate, scale)

写这篇文章是因为在一个前端QQ群里,网友 "小豆豆" (应他要求要出现他的网名......) ,问skew的角度怎么算,因为他看了很多文章还是不能理解skew的原理.于是,我觉得有必要写个博文,帮助那些不懂的人,让他们看了此文就懂. 进入正题: 先说明下,电脑屏幕的XY轴跟我们平时所说的直角坐标系是不一样的.如下图: 图上的盒子就是代表我们的电脑屏幕,原点就是屏幕的左上角,竖直向下为X轴正方向,水平向右为Y轴正方向. 1.倾斜skew 先看图 每个图下方都有skew的参数.粗的红色的线

CSS3 Transform属性详解

今天我们一起来学习有关于CSS3制作动画的几个属性:变形(transform).转换(transition)和动画(animation)等更高级的CSS3技术.本文主要介绍的是这三个属性之中的第一个──变形transform. Transform字面上就是变形,改变的意思.在CSS3中transform主要包括以下几种:旋转rotate.扭曲skew.缩放scale和移动translate以及矩阵变形matrix.下面我们一起来看看CSS3中transform的旋转rotate.扭曲skew.缩

transform使用详解

文件原型及可能的实现: 版本一: template<class InputIt, class OutputIt, class UnaryOperation> OutputIt transform(InputIt first1, InputIt last1, OutputIt d_first, UnaryOperation unary_op) { while (first1 != last1) { *d_first++ = unary_op(*first1++); } return d_firs

iOS开发——UI篇OC&amp;transform详解

transframe属性详解 1. transform属性 在OC中,通过transform属性可以修改对象的平移.缩放比例和旋转角度 常用的创建transform结构体方法分两大类 (1) 创建“基于控件初始位置”的形变 CGAffineTransformMakeTranslation(平移) CGAffineTransformMakeScale(缩放) CGAffineTransformMakeRotation(旋转) (2) 创建“基于transform参数”的形变 CGAffineTra

CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)

CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate) 在CSS3中,可以利用transform功能来实现文字或图像的旋转.缩放.倾斜.移动这四种类型的变形处理,本文将对此做详细介绍. 一.旋转 rotate 用法:transform: rotate(45deg); 共一个参数"角度",单位deg为度的意思,正数为顺时针旋转,负数为逆时针旋转,上述代码作用是顺时针旋转45度. 二.缩放 scale 用法:transform

第98天:变换transform详解

变换transform详解 变换函数 translateX(x):在水平方向移动元素,正值向右移动. translateY(y):在垂直方向移动元素,正值向下移动. translate(x,y):在水平和垂直方向移动元素. scaleX(x):在水平方向缩放元素(1.0是原始大小).使用负值会将元素绕y轴翻转,创建一个从右到左的镜像. scaleY(y):在垂直方向缩放元素(1.0是原始大小).使用负值会将元素绕x轴翻转,创建一个从下到上的镜像. scale(x,y):在水平和垂直方向缩放元素.

【CSS3 transform属性和过渡属性详解】

CSS3transform属性详解 transform字面上就是变形,改变的意思. 在CSS3中transform主要包括以下几种:旋转rotate.扭曲skew.缩放scale和移动translate以及矩阵变形matrix. 2D Transform 方法 translate() 根据左(X轴)和顶部(Y轴)位置给定的参数,从当前元素位置移动. rotate() 在一个给定度数顺时针旋转的元素.负值是允许的,这样是元素逆时针旋转. scale() 该元素增加或减少的大小,取决于宽度(X轴)和

CSS3动画特效——transform详解

CSS3动画特效——transform详解 公共css .common{ width:100px; height:100px; margin:20px auto; background-color:#75C934; text-align:center; line-height:100px; font-size:18px; } 1)transform:rotate(value); 元素旋转 value为旋转度数 默认顺时针旋转. value若为负值则逆时针旋转. .box{ /*过渡效果*/ -w

Android触摸屏事件派发机制详解与源码分析二(ViewGroup篇)

1 背景 还记得前一篇<Android触摸屏事件派发机制详解与源码分析一(View篇)>中关于透过源码继续进阶实例验证模块中存在的点击Button却触发了LinearLayout的事件疑惑吗?当时说了,在那一篇咱们只讨论View的触摸事件派发机制,这个疑惑留在了这一篇解释,也就是ViewGroup的事件派发机制. PS:阅读本篇前建议先查看前一篇<Android触摸屏事件派发机制详解与源码分析一(View篇)>,这一篇承接上一篇. 关于View与ViewGroup的区别在前一篇的A