如何使用 jQuery UI 获取可拖动和可调整大小元素的坐标

Posted

技术标签:

【中文标题】如何使用 jQuery UI 获取可拖动和可调整大小元素的坐标【英文标题】:How to get coordinates of draggable and resizable elements using jQuery UI 【发布时间】:2020-06-12 23:48:31 【问题描述】:

我想为响应式图像映射生成多个坐标(左、上、宽、高)。在管理界面中,允许在图像上创建、移动和调整大小的矩形。我能够在图像上多次创建、可移动和可调整大小的矩形并将坐标值保存到数据库中。在使用数据库保存坐标填充图像地图的用户界面中但矩形位置在桌面和移动浏览器视图中均未正确显示

这是我的源代码 Jsfiddle。在图像上完成矩形绘制后,请点击运行按钮并将鼠标悬停在图像上查看渲染的地图区域(矩形)。

JSFiddle: https://jsfiddle.net/sridharnetha/8mryxgf2/6/

【问题讨论】:

最好在您的帖子中添加一些代码。这使其他人可以更轻松地查看问题,而无需点击指向小提琴的链接。 要获取topleft,可以使用.position().offset()。对于widthheight,分别使用.width().outerWidth().height() 【参考方案1】:

我知道这篇文章有点老了,但这是我很久以前创建的一个示例。也许它会帮助其他有同样问题的人。

Link to the fiddle is here.

jQuery获取元素位置和大小的重要sn-p在这里

$("#draggable").draggable(
    // ...
    drag: function(event, ui) 
      console.log($(event.target).width() + " x " + $(event.target).height());
      console.log(ui.position.top + " x " + ui.position.left);
    ,
    stop: function(event, ui) 
      console.log($(event.target).width() + " x " + $(event.target).height());
      console.log(ui.position.top + " x " + ui.position.left);
    
  )
  .resizable(
    // ...
    resize: function(event, ui) 
      console.log(ui.size.width + " x " + ui.size.height);
      console.log(ui.position.top + " x " + ui.position.left);
    ,
    stop: function(event, ui) 
      console.log(ui.size.width + " x " + ui.size.height);
      console.log(ui.position.top + " x " + ui.position.left);
    
  )

此外,了解widthinnerWidthouterWidth 的区别也很重要。 See more details here.

【讨论】:

以上是关于如何使用 jQuery UI 获取可拖动和可调整大小元素的坐标的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用 jQuery(可拖动和可调整大小)拖动光标时调整图像大小

jquery 中可调整大小、可拖动的对象。可能的?

如何使用 jQuery 使文本框可拖动?

Jquery\ASP.NET 可拖动和可调整大小的项目列表

Jquery 使克隆图像可拖动和调整大小

jquery UI 图像可调整大小但不可拖动?