transform应用详解

时间:2023-03-09 00:35:42
transform应用详解

transform应用详解

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

html:

 <!DOCTYPE html>
<html>
<head lang="en">
<link rel="stylesheet" href="practice.css" type="text/css" >
<script src="../js/jquery-2.1.1.min.js" type="text/javascript" ></script>
<meta charset="UTF-8">
<title>transform</title>
</head>
<body>
<div class="container">
<div class="out">
<ul>
<li class="in"><img src='1.jpg' /></li>
<li class="in"><img src='2.jpg' /></li>
<li class="in"><img src='3.jpg' /></li>
<li class="in"><img src='4.jpg' /></li>
<li class="in"><img src='5.jpg' /></li>
</ul>
</div>
<div class="control">
<div class='detail'>
<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>
<p>你选择transform_style为<span></span></p>
</div>
<div class='detail'>
<span>perspective:</span><input name='perspective' type="range" min='0' max='800' value='0' step='1'/>
<p>你选择的perspective值为<span></span></p>
</div>
<div class='detail'>
<span>translateX:</span><input name='translateX' type="range" min='0' max='50' value='0' step='1'/>
<p>你选择的translateX值为<span></span></p>
</div>
<div class='detail'>
<span>translateY:</span><input name='translateY' type="range" min='0' max='50' value='0' step='1'/>
<p>你选择的translateY值为<span></span></p>
</div>
<div class='detail'>
<span>translateZ:</span><input name='translateZ' type="range" min='0' max='50' value='0' step='1'/>
<p>你选择的translateZ值为<span></span></p>
</div>
<div class='detail'>
<span>rotateX:</span><input name='rotateX' type="range" min='0' max='180' value='0' step='1'/>
<p>你选择的rotateX值为<span></span></p>
</div>
<div class='detail'>
<span>rotateY:</span><input name='rotateY' type="range" min='0' max='180' value='0' step='1'/>
<p>你选择的rotateY值为<span></span></p>
</div>
<div class='detail'>
<span>rotateZ:</span><input name='rotateZ' type="range" min='0' max='180' value='0' step='1'/>
<p>你选择的rotateZ值为<span></span></p>
</div>
</div>
</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>