css3 3D圆周运动

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
div{
position: absolute;
top: 200px;
left: 200px;
border-radius: 50%;
width: 0;
height: 0;
border-top: 30px solid red;
border-left: 30px solid blue;
border-right: 30px solid green;
border-bottom: 30px solid yellow;
}
</style>
</head>
<body>
<div></div>
<div></div>
<div></div>
<div></div>
<div class="last"></div>
<script>
var divs = document.getElementsByTagName('div');


circleMove({
//*为必须写
'obj':divs[0],//哪个元素*
'yuanxin':[200,200],//圆周运动圆心*
'r':200,//半径*
'looptime':2000,//一圈时间*
'degree':0,//开始角度
'dirction':1//默认为1正方向 -1方向 运动反向
});
circleMove({
//*为必须写
'obj':divs[2],//哪个元素*
'yuanxin':[200,200],//圆周运动圆心*
'r':100,//半径*
'looptime':2000,//一圈时间*
'degree':0,//开始角度
'dirction':1//默认为1正方向 -1方向 运动反向
});
//中间小球自传
var deg =0;
setInterval(function(){
for (var i = 0; i < divs.length; i++) {
divs[i].style.transform='rotate('+ -1*deg +'deg)';
}
deg +=7;
if (deg>=360) {
deg=0;
}
},20)
// 运动函数
function circleMove(argsJSON){
//获取旋转对象
var o =argsJSON.obj;
//圆心
var a =argsJSON.yuanxin[0];
var b =argsJSON.yuanxin[1];
//半径
var r=argsJSON.r;
//运动方向
var dirction =argsJSON.dirction||1;
//信号量,当前的角度,0度就是12点钟方向。瞬时针
var degree =argsJSON.degree||0;


//每帧运动多少时间,毫秒
var interval =20;
//运动一周时间
var looptime =argsJSON.looptime;
//计算一圈的帧数
var loopframes =looptime/interval;
//一圈360度,计算每帧的度数
var degreeDelta = 360/loopframes;
//核心定时器
setInterval(function(){
//每次旋转多少度
degree+=degreeDelta*dirction;
if (degree>=360) {
degree=0;
}
go(degree);
},interval)
//没走一次,都相当于设置盒子的left和top值
function go(degree){
o.style.left = a + r*Math.sin(degreeToRad(degree))+'px';
  o.style.top= b - r*Math.cos(degreeToRad(degree))+'px';
}
角度转化为弧度
function degreeToRad(degree){
  return degree*Math.PI/180 ;
}


}
</script>
</body>
</html>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值