Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中使用方向移动div?_Javascript_Html_Css_Css Animations - Fatal编程技术网

如何在JavaScript中使用方向移动div?

如何在JavaScript中使用方向移动div?,javascript,html,css,css-animations,Javascript,Html,Css,Css Animations,HMTL中有一个元素我想移动。这很简单。问题是元素应该以指定的角度移动,例如30度。在JavaScript(以及CSS旋转)中如何才能做到这一点 谢谢你的回答 function Moveit() { document.getElementById("div1").style.transform = "rotate(-30deg)"; } function Moveit2() { document.getElementById("div1").style.transform = "ro

HMTL中有一个元素我想移动。这很简单。问题是元素应该以指定的角度移动,例如30度。在JavaScript(以及CSS旋转)中如何才能做到这一点

谢谢你的回答

function Moveit() {
  document.getElementById("div1").style.transform = "rotate(-30deg)";
}


function Moveit2() {
  document.getElementById("div1").style.transform = "rotate(30deg)";
}


如果我理解得很好,您可以使用
Math.cos
Math.sin
来获得所需向量的水平和垂直分量,然后增加
top
left
属性:

(函数(){
var-box=document.getElementById('box'),
top=0,
左=0,
角度=30*Math.PI/180,//30度
速度=1,
deltaX=数学cos(角度)*速度,
deltaY=数学sin(角度)*速度;
setInterval(函数(){
box.style.top=(top+=deltaY)+'px';
box.style.left=(left+=deltaX)+'px';
}, 60);
})();
#框{
高度:50px;
宽度:50px;
位置:相对位置;
背景:蓝色;
}

如果我理解得很好,您可以使用
Math.cos
Math.sin
获得所需向量的水平和垂直分量,然后增加
顶部
左侧
属性:

(函数(){
var-box=document.getElementById('box'),
top=0,
左=0,
角度=30*Math.PI/180,//30度
速度=1,
deltaX=数学cos(角度)*速度,
deltaY=数学sin(角度)*速度;
setInterval(函数(){
box.style.top=(top+=deltaY)+'px';
box.style.left=(left+=deltaX)+'px';
}, 60);
})();
#框{
高度:50px;
宽度:50px;
位置:相对位置;
背景:蓝色;
}
单击某处。
或者运行下面的代码段

旋转
仅在“某个地方”进行旋转

只能通过改变位置()来移动。
(HTML中的每个元素只是点x,y处的一个块)

不要忘记在css中设置
position:absolute
,以使
div
可浮动。

vard=30;
document.getElementById(“div1”).style.transform=“旋转(“+0+”度)”;
var-mx,我的;
$(“body”).bind(“mousemove”,函数(事件){
mx=event.clientX;
my=event.clientY;
});
var div=document.getElementById(“div1”);
$(“BODY”).bind(“click”),函数(事件){
$('#div1')。设置动画({
左:mx-32,
上图:my-32,
},300+数学.random()*600)
});
setInterval(函数(){
var dx=mx-div.offsetLeft-32;
var dy=my-div.offsetTop-32;
var v1={x:div.offsetLeft+32,y:div.offsetTop+32},
v2={x:mx,y:my};
var angleDeg=数学atan2(v2.y-v1.y,v2.x-v1.x)*180/Math.PI;
div.style.transform=“旋转(“+angleDeg+”deg)”;
div.innerHTML=编号(angleDeg).toFixed(2);
},30);
.div1{
边框:1px纯黑;
宽度:64px;
高度:64px;
边际:0px;
左:50px;
顶部:50px;
位置:绝对位置;
显示:inile块;
文本对齐:居中;
}
正文,HTML{宽度:100%;高度:100%;a.填充:0px;边距:0px}

在某处单击鼠标。
单击某个地方。
或者运行下面的代码段

旋转
仅在“某个地方”进行旋转

只能通过改变位置()来移动。
(HTML中的每个元素只是点x,y处的一个块)

不要忘记在css中设置
position:absolute
,以使
div
可浮动。

vard=30;
document.getElementById(“div1”).style.transform=“旋转(“+0+”度)”;
var-mx,我的;
$(“body”).bind(“mousemove”,函数(事件){
mx=event.clientX;
my=event.clientY;
});
var div=document.getElementById(“div1”);
$(“BODY”).bind(“click”),函数(事件){
$('#div1')。设置动画({
左:mx-32,
上图:my-32,
},300+数学.random()*600)
});
setInterval(函数(){
var dx=mx-div.offsetLeft-32;
var dy=my-div.offsetTop-32;
var v1={x:div.offsetLeft+32,y:div.offsetTop+32},
v2={x:mx,y:my};
var angleDeg=数学atan2(v2.y-v1.y,v2.x-v1.x)*180/Math.PI;
div.style.transform=“旋转(“+angleDeg+”deg)”;
div.innerHTML=编号(angleDeg).toFixed(2);
},30);
.div1{
边框:1px纯黑;
宽度:64px;
高度:64px;
边际:0px;
左:50px;
顶部:50px;
位置:绝对位置;
显示:inile块;
文本对齐:居中;
}
正文,HTML{宽度:100%;高度:100%;a.填充:0px;边距:0px}

在某处单击鼠标。

向我们提供您拥有的一些代码。请更好地解释您想要什么,可能是gif或类似的东西。同时,请检查我开始的代码:vinayakj,我检查了它,是的,我的意思是这样的,但我想将元素向上移动。向我们提供您拥有的一些代码。请更好地解释您想要什么,可能是gif或类似的。同时检查我开始检查:vinayakj,我检查了它,是的,我的意思是这样的,但我想将元素向方向移动。谢谢你的帮助,但你的代码不包括“旋转”。谢谢你的帮助,但你的代码不包括“旋转”。