jq 鼠标旋转控制也能3d旋转

//在写css3的3d动画的时候 有时候会想不到3d效果,为了方便观察元素到底在页面的3d的那个位置,写了这个鼠标移动事件来旋转页面方便查看元素位置
var rox=0;
var roy=0;
var xn= 0,yn=0;
var play=false;
$(document).mousedown(function(ev){
clearInterval(play);
var x_=ev.clientX;
var y_=ev.clientY;
$(this).bind("mousemove",function(ev){
var x=ev.clientX;
var y=ev.clientY;
xn= x-x_;
yn= y-y_;
roy += xn*0.2;
rox -= yn*0.1;
//camera.position.z =400;
camera.position.x =roy;
camera.position.y =rox;
camera.rotation.x =rox* Math.PI /180;
camera.rotation.y =roy* Math.PI /180;
//这个是在页面加个红色小方块检测鼠标的位置
// $("body").append('<div style="width:5px;height:5px;position:absolute;top:'+y+'px;left:'+x+'px;background:red;"></div>')
//这里就是要旋转的元素 这里写了body,也可以写div啊啥的盒子东西
$("body").css({
"transform-style": "preserve-3d",
"transform":'perspective(800px) rotateX('+rox+'deg) rotateY('+roy+'deg)',
"-webkit-transform":'perspective(800px) rotateX('+rox+'deg) rotateY('+roy+'deg)'
});
x_=ev.clientX;
y_=ev.clientY;
})
}).mouseup(function(){
$(this).unbind("mousemove");
var play= setInterval(function(){
xn*=0.95; //xn=xn*0.95
yn*=0.95;
if(Math.abs(xn)<1&&Math.abs(yn)<1){
clearInterval(play);
}
roy += xn*0.2;
rox -= yn*0.1;
camera.position.x =roy;
camera.position.y =rox;
camera.rotation.x =rox* Math.PI /180;
camera.rotation.y =roy* Math.PI /180;
},30)

})

转载于:https://www.cnblogs.com/fstgshow/p/5394740.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值