【发布时间】:2014-09-25 08:39:57
【问题描述】:
我正在尝试使用 css 3 变换旋转功能将 div 旋转到一个点。
到此为止:jsfiddle link
$(document).ready(function(){
var scw,sch,scx,scy;
calcCenter();
$(window).resize(function() {
calcCenter();
});
function calcCenter(){
sch = $(window).height();
scw = $(window).width();
scx = scw/2;
scy = sch/2;
$(".circle").remove();
var circle = $("<span></span>").addClass('circle').text('.');
circle.css('top',scy-50+"px");
circle.css('left',scx-50+"px");
$(document.body).append(circle);
}
function calcAngle(p1,p2){
var angle = Math.atan2(p2.y - p1.y, p2.x - p1.x) * 180 / Math.PI;
return angle;
}
$(document).click(function(e){
var box = $("<span></span>").addClass('box');
var x = e.pageX,y=e.pageY;
box.css('top',y+"px");
box.css('left',x+"px");
$(document.body).append(box);
var angle = calcAngle({x:x,y:y},{x:scx,y:scy});
box.css('-webkit-transform','rotate('+(90+angle)*-1+'deg)');
box.draggable({
drag: function(e) {
var box = $(this);
var x = e.pageX,y=e.pageY;
box.css('top',y+"px");
box.css('left',x+"px");
var angle = calcAngle({x:x,y:y},{x:scx,y:scy});
box.css('-webkit-transform','rotate('+(90+angle)*-1+'deg)');
}
});
});
var sunAngle = 1;
setInterval(function(){
var sun = $("span.circle")[0];
$(sun).css('-webkit-transform','rotate('+sunAngle+'deg)');
sunAngle = (sunAngle+1) %360;
},100);
});
我在 Google 上搜索了“lookat”函数,发现只有类似于 lookat 矩阵的东西。
【问题讨论】:
-
对于初学者来说,叶子的默认方向是西南方向令人困惑。尽管如此,我会尝试修正你的数学。顺便说一句,小提琴不错。
标签: jquery css css-transforms