Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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 HTML5拖放。检测元素被抓取的位置_Javascript_Html_Drag And Drop_Html5 Draggable - Fatal编程技术网

Javascript HTML5拖放。检测元素被抓取的位置

Javascript HTML5拖放。检测元素被抓取的位置,javascript,html,drag-and-drop,html5-draggable,Javascript,Html,Drag And Drop,Html5 Draggable,我正在使用HTML5拖放API,并实现可排序列表和自动滚动。对于某些特性,我希望能够检测元素的哪一部分被抓取 这是插图 感谢您的帮助,您可以使用元素的计算填充+宽度和的offsetX属性来计算所选区域 yourElement.addEventListener('mousedown', function onDragStart(event){ let width = parseInt(window.getComputedStyle(yourElement).getPropertyValue(

我正在使用HTML5拖放API,并实现可排序列表和自动滚动。对于某些特性,我希望能够检测元素的哪一部分被抓取

这是插图


感谢您的帮助,您可以使用元素的计算填充+宽度和的
offsetX
属性来计算所选区域

yourElement.addEventListener('mousedown', function onDragStart(event){
  let width = parseInt(window.getComputedStyle(yourElement).getPropertyValue('width'));
  let padding = parseInt(window.getComputedStyle(yourElement).getPropertyValue('padding-left'));
  let position = event.offsetX;
  let middle = (width / 2) + padding;

  if (position <= middle) {
    console.log('left');
  } else {
    console.log('right');
  }
});
yourElement.addEventListener('mousedown',函数onDragStart(事件){
让width=parseInt(window.getComputedStyle(yourElement.getPropertyValue('width'));
让padding=parseInt(window.getComputedStyle(yourElement.getPropertyValue('padding-left'));
让位置=event.offsetX;
让中间=(宽度/2)+填充;

如果(你说的位置,点击了元素的哪个部分,你在寻找什么样的结果?X,Y坐标?javascript元素?或者你的意思是,元素的上半部分还是下半部分?@perrinprograms我在寻找表示从抓取点到抓取元素边缘的距离的标量数