我正在尝试以与鼠标单击相同的方向旋转对象,并移动到鼠标单击的位置。到目前为止,我已经安排好了移动,但我认为角度有问题,因为它不能像我一样旋转。我犯了什么错误?我该如何解决?
var theThing = document.querySelector("#thing");
var container = document.querySelector("#contentContainer");
var triangle = document.querySelector("#triangle");
container.addEventListener("click", getClickPosition, false);
function getClickPosition(e) {
var xPosition = e.clientX;
var yPosition = e.clientY;
var translate3dValue = "translate3d(" + xPosition + "px," + yPosition +
"px,0)";
var spx = document.querySelector("#triangle").clientWidth / 2;
var spy = document.querySelector("#triangle").clientHeight / 2;
var angle = Math.atan2(yPosition - spy, xPosition - spx) * 180 /
Math.PI;
if (angle < 0) {
angle = 360 - (-angle);
}
theThing.style.transform = translate3dValue;
theThing.style.transform += "rotate(" + angle + "deg)"
}
body {
background-color: #FFF;
padding: 0;
margin: 0;
}
#contentContainer {
width: 500px;
height: 500px;
border: 15px #EDEDED solid;
overflow: hidden;
background-color: #F2F2F2;
cursor: pointer;
}
#thing {
width: 75px;
height: 75px;
background-color: rgb(255, 207, 0);
border-radius: 0%;
transform: translate3d(200px, 100px, 0);
transition: transform.2s ease-in;
}
#triangle {
width: 0;
height: 0;
border-left: 30px solid transparent;
border-right: 45px solid transparent;
border-bottom: 75px solid black;
}
<div id="contentContainer">
<div id="thing">
<div id="triangle">
</div>
</div>
</div>
角度
的? - Abhishek Pandeyvar spx = document.querySelector("#triangle").clientWidth / 2;
和var spy = document.querySelector("#triangle").clientHeight / 2;
是否一直返回0
吗? - Abhishek Pandey