概述:css3中的transform中有旋转,放缩,倾斜,平移的功能,分别对应的属性是:rotate,scale,skew,translate
1、旋转,利用rotate来实现,代码如下:
-webkit-transform:rotate(10deg)指定浏览器内核为webkit的翻转方式
-moz-transform:rotate(10deg)指定firefox浏览器私有属性
transform:rotate(10deg)一般浏览器翻转的角度为10弧度
2、 翻转,利用scale来实现,代码如下:
scale本来是放缩的意思,原来括弧里面(1,1)前者表示X轴,后者表示Y轴,当数字大于1时放大,大于0并小于1时缩小,负数代表翻转
水平翻转:
-webkit-transform:scale(-1,1)水平轴为-1,代表水平翻转
-moz-transform:scale(-1,1)水平轴为-1,代表水平翻转
transform:scale(-1,1)水平轴为-1,代表水平翻转
垂直翻转:
-webkit-transform:scale(1,-1)垂直轴为-1,代表垂直翻转
-moz-transform:scale(1,-1)垂直轴为-1,代表垂直翻转
transform:scale(1,-1)垂直轴为-1,代表垂直翻转
你的代码里面只有位置移动的top,left。没有写旋转的代码。
在动画帧时加入rotate(角度)就可以旋转并移动,可以参考下面代码。
相关示例如下:
<style>.ani{animation:box 1s linear 0s infinitewidth:100pxheight:100pxbackground:greenborder-radius:50%}
@keyframes box{0% {transform:rotate(0deg)translate(0,0)}25%{transform:rotate(90deg)}50%{transform:rotate(180deg)translate(-300px,0)}75%{transform:rotate(270deg)}100% {transform:rotate(360deg)translate(0,0)}}
</style>
<div class="ani"></div>
CSS(层叠样式表)级联样式表是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
<!DOCTYPE HTML><html>
<head>
<meta charset=UTF-8>
<title>YuGiOh</title>
<style type="text/css">
#div {
position: absolute
top: 50px
left: 300px
width: 300px
height: 300px
line-height: 300px
text-align: center
border: 1px solid black
}
</style>
<script type="text/javascript" src="jquery-1.8.0.min.js"></script>
<script type="text/javascript">
var rotateHTML5 = function (limit)
{
var reg = /(rotate\([\-\+]?((\d+)(deg))\))/i
var wt = div.style['-webkit-transform'], wts = wt.match (reg)
var $2 = RegExp.$2
console.log ($2)
div.style['-webkit-transform'] = wt.replace ($2, parseFloat (RegExp.$3) + limit + RegExp.$4)
}
var rotateIE = function (obj)
{
var d = !!obj.d ? obj.d : 1
var r = d * Math.PI / 180
costheta = Math.cos (r)
sintheta = Math.sin (r)
obj.style.filter = "progid:DXImageTransform.Microsoft.Matrix()"
var item = obj.filters.item (0)
var width = obj.clientWidth
var height = obj.clientHeight
item.DX = -width / 2 * costheta + height / 2 * sintheta + width / 2
item.DY = -width / 2 * sintheta - height / 2 * costheta + height / 2
item.M11 = costheta
item.M12 = -sintheta
item.M21 = sintheta
item.M22 = costheta
obj.timer = setTimeout (function ()
{
var dx = d + 1
dx = dx > 360 ? 1 : dx
obj.d = dx
rotate (obj, dx)
}, 30)
}
var start = function ()
{
if (!!div.interval)
{
clearInterval (div.interval)
delete div.interval
}
else
{
div.interval = setInterval (function ()
{
/.*webkit.*/i.test (navigator.userAgent) ? rotateHTML5 (1) : rotateIE (div)
}, 30)
}
}
</script>
</head>
<body>
<button onclick="start()">rotate</button>
<div id="div" style="border-radius: 90px -webkit-transform: rotate(10deg)">ROTATE</div>
</body>
</html>