首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过拖放将图标克隆在一起

通过拖放将图标克隆在一起
EN

Stack Overflow用户
提问于 2020-08-06 03:24:59
回答 1查看 34关注 0票数 0

我有两个有边界的空间来存放工具和自由空间(droppable-area)。这个工具空间包括一些可以拖动的形状,也可以拖放到自由空间。

我想解决的事情就像克隆一样,它可以解决我的问题。如何在拖放后将图标的克隆添加到它们的相同位置?

如有任何帮助,将不胜感激,谢谢!

代码语言:javascript
复制
$(function() {
  $(".doitcenter").draggable({
    revert: "invalid",
    handle: ".shapes"
  });
  $(".droppable-area").droppable({
    drop: function(event, ui) {
      ui.draggable.appendTo(this).position({
        my: "center center-5",
        at: "center",
        of: event
      });
    }
  });
  $(".free-space").on("click", ".close-button", function(e) {
    $(this).closest(".doitcenter").remove();
  });
});
代码语言:javascript
复制
.tool-space {
  border: 10px double #005580;
  min-height: 608px;
}

.free-space {
  border: 10px solid #005580;
  min-height: 608px;
}

.free-space .doitcenter {
  width: 40px;
}

.doitcenter {
  text-align: center;
}

.close-button {
  font-size: 24px;
  cursor: pointer;
}

.shapes {
  opacity: 0.8;
  margin-bottom: 10px;
}

.shapes:hover {
  cursor: move;
  opacity: 1;
}
代码语言:javascript
复制
<script src="https://kit.fontawesome.com/6e2154b1f7.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div class="container">
  <div class="row">
    <div class="col-2">
      <div class="tool-space">
        <div class="ui-widget-content doitcenter mt-2">
          <span class="draggable-item"><span class="close-button">&times;</span><i class="far fa-square fa-2x shapes"></i></span>
        </div>
        <div class="ui-widget-content doitcenter mt-2">
          <span class="draggable-item"><span class="close-button">&times;</span><i class="far fa-circle fa-2x shapes"></i></span>
        </div>
        <div class="ui-widget-content doitcenter mt-2">
          <span class="draggable-item"><span class="close-button">&times;</span><i class="far fa-square fa-2x shapes"></i></span>
        </div>
        <div class="ui-widget-content doitcenter mt-2">
          <span class="draggable-item"><span class="close-button">&times;</span><i class="far fa-circle fa-2x shapes"></i></span>
        </div>
      </div>
    </div>
    <div class="col-10">
      <div class="free-space droppable-area">
      </div>
    </div>
  </div>
</div>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-06 03:35:50

就在这里,您错过了对draggablehelper: 'clone'配置和应用于元素的.clone() at drop函数

代码语言:javascript
复制
$(function() {
  $(".doitcenter").draggable({
    revert: "invalid",
    handle: ".shapes",
    helper: 'clone'
  });
  $(".droppable-area").droppable({
    drop: function(event, ui) {
      if (!$(ui.draggable).hasClass('cloned')) {
        ui.draggable
          .clone()
          .addClass('cloned')
          .appendTo(this)
          .position({
            my: "center center-5",
            at: "center",
            of: event
          })
          .draggable();
       }
    }
  });
  $(".free-space").on("click", ".close-button", function(e) {
    $(this).closest(".doitcenter").remove();
  });
});
代码语言:javascript
复制
.tool-space {
  border: 10px double #005580;
  min-height: 608px;
}

.free-space {
  border: 10px solid #005580;
  min-height: 608px;
}

.free-space .doitcenter {
  width: 40px;
}

.doitcenter {
  text-align: center;
}

.close-button {
  font-size: 24px;
  cursor: pointer;
}

.shapes {
  opacity: 0.8;
  margin-bottom: 10px;
}

.shapes:hover {
  cursor: move;
  opacity: 1;
}
代码语言:javascript
复制
<script src="https://kit.fontawesome.com/6e2154b1f7.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div class="container">
  <div class="row">
    <div class="col-2">
      <div class="tool-space">
        <div class="ui-widget-content doitcenter mt-2">
          <span class="draggable-item"><span class="close-button">&times;</span><i class="far fa-square fa-2x shapes"></i></span>
        </div>
        <div class="ui-widget-content doitcenter mt-2">
          <span class="draggable-item"><span class="close-button">&times;</span><i class="far fa-circle fa-2x shapes"></i></span>
        </div>
        <div class="ui-widget-content doitcenter mt-2">
          <span class="draggable-item"><span class="close-button">&times;</span><i class="far fa-square fa-2x shapes"></i></span>
        </div>
        <div class="ui-widget-content doitcenter mt-2">
          <span class="draggable-item"><span class="close-button">&times;</span><i class="far fa-circle fa-2x shapes"></i></span>
        </div>
      </div>
    </div>
    <div class="col-10">
      <div class="free-space droppable-area">
      </div>
    </div>
  </div>
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63272243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档