动态元素和jquery ui(可拖动)

发布于 2025-01-12 23:47:44 字数 1190 浏览 3 评论 0原文

我正在创建动态元素,用于使用百分比在绝对定位的基础上拖动和放置元素。问题是,当我添加更多动态元素时,除了创建的第一个元素之外,每次添加都会将图像拖动对齐 2%...

这是 codepen 链接。 https://codepen.io/designsbycamaron/pen/yLPmNXx

仅用于可拖动的代码。

$(".img_overlay").draggable({
          containment: "#bkg-area",
          stop: function () {
            var offset = $("#bkg-area").offset();
            var xPos = offset.left;
            var yPos = offset.top;
            var l =
              100 *
                parseFloat(
                  $(this).position().left / parseFloat($("#bkg-area").width())
                ) +
              "%";
            var t =
              100 *
                parseFloat(
                  $(this).position().top / parseFloat($("#bkg-area").height())
                ) +
              "%";
            $('input[name="pos_x_' + $(this).attr("store-data") + '"]').val(
              l
            );
            $('input[name="pos_y_' + $(this).attr("store-data") + '"]').val(
              t
            );
            $(this).css("left", l);
            $(this).css("top", t);
          }
        });

I am creating dynamic elements for dragging and placing elements on a positioned absolute basis using percentage. The issue is, that as I add more dynamic elements the dragging snaps the image over by 2% for each addition except the first one created...

Here is the codepen link.
https://codepen.io/designsbycamaron/pen/yLPmNXx

Code for just the draggable.

$(".img_overlay").draggable({
          containment: "#bkg-area",
          stop: function () {
            var offset = $("#bkg-area").offset();
            var xPos = offset.left;
            var yPos = offset.top;
            var l =
              100 *
                parseFloat(
                  $(this).position().left / parseFloat($("#bkg-area").width())
                ) +
              "%";
            var t =
              100 *
                parseFloat(
                  $(this).position().top / parseFloat($("#bkg-area").height())
                ) +
              "%";
            $('input[name="pos_x_' + $(this).attr("store-data") + '"]').val(
              l
            );
            $('input[name="pos_y_' + $(this).attr("store-data") + '"]').val(
              t
            );
            $(this).css("left", l);
            $(this).css("top", t);
          }
        });

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文