微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery-ui – 如何保存可拖动和可调整大小元素的位置?

我正在构建一个网站,允许用户创建一个html页面,然后可以在另一个站点上保存和共享.我希望他们能够调整大小并拖动页面元素.我可以使用jQuery做到这一点,但我不知道如何保存它,以便在其他地方查看页面时,它看起来是一样的.

我还没有决定如何存储页面信息,但我想的是我可以将每个元素及其绝对位置和内容存储在数据库中.这听起来像个好计划吗?

如果是这样,我如何获得div的位置传递给PHP,以便它可以保存?

谢谢.

解决方法

JQueryUI Resizable有一个名为resize的事件,你可以使用它:
var resposition = '';

$('#divresize').resizable({
   //options...
   resize: function(event,ui){
      resposition = ui.position;
   }
});

JQueryUI Draggable及其事件拖动也是如此:

var dragposition = '';

$('#divdrag').draggable({
   // options...
   drag: funciton(event,ui){
      dragposition = ui.position;
   }
});

resposition和dragposition将是数组.你可以看到它在这里工作:http://jsbin.com/uvuzi5

编辑:使用表单,您可以将拖拽位置和重新定位保存到隐藏的输入中

var inputres = '<input type="hidden" id="resposition" value="'+resposition.left+','+resposition.top+'"/>'
$('#myform').append(inputres);
var inputdrag = '<input type="hidden" id="dragposition" value="'+dragposition.left+','+dragposition.top+'"/>'
$('#myform').append(inputdrag);

并在您的PHP文件中处理表单:

$dragposition = $_GET['dragposition'];
$resposition = $_GET['resposition'];
$dragposition = explode(',',$dragposition);
$resposition = explode(',$resposition);

最后,两个变量都应该是具有top和left属性的数组:

$dragposition => [top,left] attributes from draggable
$resposition => [top,left] attributes from resizable

原文地址:https://www.jb51.cc/jquery/181610.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐