Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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
如何移动a";分区;使用Javascript访问特定坐标?_Javascript_Html_Css_Angularjs - Fatal编程技术网

如何移动a";分区;使用Javascript访问特定坐标?

如何移动a";分区;使用Javascript访问特定坐标?,javascript,html,css,angularjs,Javascript,Html,Css,Angularjs,我想知道,如何将div块动态定位到鼠标单击的位置 我知道如何动态获取单击的坐标值 我想知道如何将div块移动到该坐标 我在SO中尝试了以下代码,但没有任何效果 document.getElementById('someID').style.position='absolute'; document.getElementById('someID').style.left='500px'; document.getElementById('someID').style.top='90px'; 和下

我想知道,如何将div块动态定位到鼠标单击的位置

我知道如何动态获取单击的坐标值

我想知道如何将div块移动到该坐标

我在SO中尝试了以下代码,但没有任何效果

document.getElementById('someID').style.position='absolute';
document.getElementById('someID').style.left='500px';
document.getElementById('someID').style.top='90px';
和下面的代码

var d = document.getElementById('yourDivId');
d.style.position = "absolute";
d.style.left = x_pos;
d.style.top = y_pos;
谁能告诉我怎么做吗。 谢谢,

试试看
document.body.addEventListener('click',函数(e){console.log(e)})
您得到了一个mouseevent对象,其属性clientX,clientY给出了鼠标单击的位置。
然后,您可以使用此选项重新定位分区。

您需要在
d.style.left
d.style.top
之后添加
px

试试这个:

<style>
#someID {
    position:absolute;
    left: 0px;
    top: 0px;
    height: 50px;
    width: 50px;
    background: red;
}
</style>


<div id="someID">
</div>

<script>

var ele = document.getElementById('someID');
document.onclick = function(e) {    
    ele.style.top = e.offsetY + "px";
    ele.style.left = e.offsetX + "px";
}

</script>

#某物{
位置:绝对位置;
左:0px;
顶部:0px;
高度:50px;
宽度:50px;
背景:红色;
}
var ele=document.getElementById('someID');
document.onclick=函数(e){
ele.style.top=e.offsetY+“px”;
ele.style.left=e.offsetX+“px”;
}

下面是一个例子:

您错过了职位分配句子中的单位

要获取鼠标位置(单击时):

然后将位置发送到一个函数以更改div的位置,添加像素单位,别忘了

function moveDiv(x_pos,y_pos){
    var d = document.getElementById('myDiv');
    d.style.left = x_pos + "px";
    d.style.top = y_pos + "px";
}
完整代码:

(function() {
    window.onmousedown = handleMouseMove;
    function handleMouseMove(event) {
        event = event || window.event; // IE-ism
        console.log(event.clientX);
        moveDiv(event.clientX,event.clientY);
    }
})();

function moveDiv(x_pos,y_pos){
    var d = document.getElementById('myDiv');
    d.style.left = x_pos + "px";
    d.style.top = y_pos + "px";
}
JS

var a = document.getElementById('a');

document.onclick = function(e){  
      a.style.top = e.clientY + 'px';
      a.style.left = e.clientX + 'px'
}
div {
    position: absolute;    
}
CSS

var a = document.getElementById('a');

document.onclick = function(e){  
      a.style.top = e.clientY + 'px';
      a.style.left = e.clientX + 'px'
}
div {
    position: absolute;    
}

您可以使用这个简单的Jquery行,而不用走那些复杂的路线

$("#divId").hide();


$('body').click(function(event) {
  $("#divId").show().css( {position:"absolute", top:event.pageY, left: event.pageX});
});
首先隐藏要移动的div(或不隐藏)

然后将其移动到用户单击的任何位置。看

编辑:没关系,不是所有的看起来都这么复杂。。。祝你好运

希望这有帮助

迈克

使用

d.style.position = "absolute";
d.style.top = "980px"; //or whatever
d.style.left = "970px"; //or whatever
记住,d.style.top是y轴,d.style.left是x轴。 所以,

d.style.top = e.clientY + "px";
           d.style.left = e.clientX + "px";

以下是此代码的完整函数:

document.onmousemove = getCoords;

function getCoords(e) {
e = e || window.event;
var x = e.clientX;
var y = e.clientY;
var div = document.getElementById("MYDIV");
div.style.position = "absolute";
div.style.top = y + "px";
div.style.left = x + "px";
}

请发布您的实际代码,包括检索鼠标坐标的代码,并可能添加一个(或类似的)来显示问题,因为您发布的代码,设置样式,本身就可以正常工作:类似的东西我发现这非常有用!