Javascript 如何避免旋转时自动左对齐?

Javascript 如何避免旋转时自动左对齐?,javascript,jquery,css,css-transforms,Javascript,Jquery,Css,Css Transforms,我正在尝试沿鼠标单击的方向移动和旋转对象。不幸的是,在第一次单击时,对象会自动向左对齐。它在第一次单击后工作正常,但在第一次单击期间不工作。我不明白为什么它会自动转到左上角。我怎样才能解决这个问题?代码如下: var theThing=document.querySelector(“#thing”); var container=document.querySelector(“contentContainer”); var三角形=document.querySelector(“#三角形”);

我正在尝试沿鼠标单击的方向移动和旋转对象。不幸的是,在第一次单击时,对象会自动向左对齐。它在第一次单击后工作正常,但在第一次单击期间不工作。我不明白为什么它会自动转到左上角。我怎样才能解决这个问题?代码如下:

var theThing=document.querySelector(“#thing”);
var container=document.querySelector(“contentContainer”);
var三角形=document.querySelector(“#三角形”);
container.addEventListener(“单击”,getClickPosition,false);
函数getClickPosition(e){
var xPosition=e.clientX;
var yPosition=e.clientY;
var translate3dValue=“translate3d(“+xPosition+”px,“+yPosition+”px,0)”;
变量框=$(“#东西”);
var boxCenter=[box.offset().left+box.width()/2,box.offset().top+box.height()/2];
变量角度=Math.atan2(xPosition-boxCenter[0],-(yPosition-boxCenter[1])*(180/Math.PI);
thing.style.transform+=“旋转(“+角度+”度)”;
setTimeout(函数(){
thing.style.transform=translate3dValue;
}, 500);
}
正文{
背景色:#FFF;
填充:0;
保证金:0;
}
#内容容器{
宽度:550px;
高度:350px;
边界:15px#eded;
溢出:隐藏;
背景色:#F2F2;
光标:指针;
}
#东西{
宽度:75px;
高度:75px;
背景色:rgb(255,207,0);
边界半径:0%;
转换:translate3d(200px,100px,0);
转变:转变。2秒轻松;
}
#三角{
宽度:0;
身高:0;
左边框:30px实心透明;
右边框:45px实心透明;
边框底部:75px纯黑;
}

因为最初转换是在CSS中设置的,因此您无法将旋转附加到它,您只需覆盖它即可。使用JS将其内联,它会很好地工作。它的行为将与下一个类似,因为稍后您将添加所有内联变换:

var theThing=document.querySelector(“#thing”);
var container=document.querySelector(“contentContainer”);
var三角形=document.querySelector(“#三角形”);
container.addEventListener(“单击”,getClickPosition,false);
theThing.style.transform=“translate3d(200px,100px,0)”;
函数getClickPosition(e){
var xPosition=e.clientX;
var yPosition=e.clientY;
var translate3dValue=“translate3d(“+xPosition+”px,“+yPosition+”px,0)”;
变量框=$(“#东西”);
var boxCenter=[box.offset().left+box.width()/2,box.offset().top+box.height()/2];
变量角度=Math.atan2(xPosition-boxCenter[0],-(yPosition-boxCenter[1])*(180/Math.PI);
thing.style.transform+=“旋转(“+角度+”度)”;
setTimeout(函数(){
thing.style.transform=translate3dValue;
}, 500);
}
正文{
背景色:#FFF;
填充:0;
保证金:0;
}
#内容容器{
宽度:550px;
高度:350px;
边界:15px#eded;
溢出:隐藏;
背景色:#F2F2;
光标:指针;
}
#东西{
宽度:75px;
高度:75px;
背景色:rgb(255,207,0);
边界半径:0%;
/*转换:translate3d(200px,100px,0)*/
转变:转变。2秒轻松;
}
#三角{
宽度:0;
身高:0;
左边框:30px实心透明;
右边框:45px实心透明;
边框底部:75px纯黑;
}

你说得对。我完全忘记了css部分中的强制转换。谢谢。