Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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
Jquery 如何获得div的坐标?_Jquery_Css Position - Fatal编程技术网

Jquery 如何获得div的坐标?

Jquery 如何获得div的坐标?,jquery,css-position,Jquery,Css Position,我使用下面的代码来获取被删除元素的位置。我正在将位置保存到数据库中,以便用户下次打开页面时,元素处于相同的位置。到目前为止,它工作正常,但当屏幕大小改变时,位置也会改变。例如,如果我使用大桌面屏幕,捕获图像位置,将其保存到数据库并在笔记本电脑[小屏幕toughbook]中打开同一页,位置会发生变化 我猜这是因为JQuery获取元素相对于页面的位置,而不是相对于容器“div”。所以,如何获得元素在div中的位置 $(document).ready(function() { //Cou

我使用下面的代码来获取被删除元素的位置。我正在将位置保存到数据库中,以便用户下次打开页面时,元素处于相同的位置。到目前为止,它工作正常,但当屏幕大小改变时,位置也会改变。例如,如果我使用大桌面屏幕,捕获图像位置,将其保存到数据库并在笔记本电脑[小屏幕toughbook]中打开同一页,位置会发生变化

我猜这是因为JQuery获取元素相对于页面的位置,而不是相对于容器“div”。所以,如何获得元素在div中的位置

 $(document).ready(function() {
      //Counter
      counter = 0;
      //Make element draggable
      $("#fd img").draggable({
          helper: 'clone',
          containment: '#frame',
          //When first dragged
          stop: function(ev, ui) {

              var pos = $(ui.helper).offset();
              objName = "#clonediv" + counter
              $(objName).css({ "left": pos.left, "top": pos.top });
              $(objName).removeClass("drag");
              //When an existiung object is dragged

              var container = $('#frame');
              $(objName).draggable({
                  containment: container,
                  stop: function(ev, ui) {

                      var pos = $(ui.helper).offset();
                      //console.log($(this).attr("id"));
                      //console.log(pos.left)
                      //console.log(pos.top)
                  }
              });
          }
      });
      //Make element droppable
      $("#frame").droppable({

          drop: function(ev, ui) {

          var angle; 
              if (document.getElementById('angle').value != "") {
                  angle = document.getElementById('angle').value;
                  document.getElementById('angle').value = 0;
              }
              else {
                  angle = 0;
              }
调试器 if(ui.helper.attr('id').search(/drag[0-9]/)!=-1){


谢谢,

我不知道你的代码到底是如何工作的,但我认为这可以解决问题:

saveCoords($(ui.helper).offsetLeft, $(ui.helper).offsetTop, angle, ui.helper.attr('id') + counter);

offset
方法获取相对于文档的位置,因此您可能希望使用
position
方法,该方法提供相对于偏移父对象的位置:

var pos = $(ui.helper).position();
在代码中,您根本没有使用
pos
变量,这也是它不起作用的一个原因

saveCoords(pos.left, pos.top, angle, ui.helper.attr('id') + counter);

$(ui.helper).offsetLeft给出“未定义”请查看上面的我的entore代码offsetLeft是一个有效的元素方法(.),如果它不工作,那一定是因为ui.helper为空。$(ui.helper).不为空,只有$(ui.helper).offsetLeft是“未定义”的,我没有看到任何语法。将它添加到那里…它说了什么?
警报(“L:”+$(ui.helper).offsetLeft+“T:”++$(ui.helper.offsetTop);
ui.absolutePosition.left和代码建议的结果都是相同的左/顶值。请查看上面的整个代码
saveCoords(pos.left, pos.top, angle, ui.helper.attr('id') + counter);