簡體   English   中英

單擊拖放功能

[英]drag and drop functionality with click

我正在創建一個非常簡單的拖放應用程序。

使用html5的拖放功能可在桌面上完美運行。

我想使用click(select)和click(target,drop)復制拖放功能。

我想發生什么。

您單擊要移動的元素(即在移動情況下使用鼠標或手指)

您選擇的元素將存儲在dom中,然后在下次單擊(在目標區域中)時添加該元素。

這可以實現嗎?

謝謝

<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<style>

  .clickableBtn {
    border: 1px solid green;
    background-color: #bed1a3;
    display: inline-block;
  padding: 10px 15px; 
  margin: 20px;
}
.clickableBtn:hover {
  cursor: pointer;
}

.selected {
  opacity: .3;
}
.targetArea {
  border: 1px solid red;
  background: orange;
  width: 200px;
  height: 200px;
  position: absolute;
  left: 50%;
  top: 20px;
}
.targetArea:hover {
  cursor: pointer;
}
</style>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
</head>
<body>

  <div class="clickableBtn">Click me!!</div>

  <div class="targetArea"></div>

  <script>
     $(function(){

       $('.clickableBtn').on('click',function(e){
         e.preventDefault();
         if ( $(this).parent().prop('class') != 'targetArea' ){
            $(this).toggleClass('selected');
         }
       });
       $('.targetArea').on('click',function(e){
         e.preventDefault();
         if( $('.selected').lenght !== 0 ) {
           $(this).append($('.selected'));
           $('.selected').removeClass('selected');
         }
       });
     });
  </script>

</body>
</html>

我可以通過在單擊它們之后將對“已單擊”項的引用存儲在變量(列表,對象,任何適合您的變量)中來實現的。 當您單擊“放置”區域(以任何方式弄清楚“放置區域”是什么)時,只需讀取該變量,然后將所有單擊的項目“移動”(可能使用CSS)到“放置”區域。

下面的示例是一個簡單的拖放示例:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQuery UI Sortable - Connect lists</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <link rel="stylesheet" href="/resources/demos/style.css">
  <style>
  #sortable1, #sortable2 {
    border: 1px solid #eee;
    width: 142px;
    min-height: 20px;
    list-style-type: none;
    margin: 0;
    padding: 5px 0 0 0;
    float: left;
    margin-right: 10px;
  }
  #sortable1 li, #sortable2 li {
    margin: 0 5px 5px 5px;
    padding: 5px;
    font-size: 1.2em;
    width: 120px;
  }
  </style>
  <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>
  <script>
  $( function() {
    $( "#sortable1, #sortable2" ).sortable({
      connectWith: ".connectedSortable"
    }).disableSelection();
  } );
  </script>
</head>
<body>

<ul id="sortable1" class="connectedSortable">
  <li class="ui-state-default">Item 1</li>
  <li class="ui-state-default">Item 2</li>
  <li class="ui-state-default">Item 3</li>
  <li class="ui-state-default">Item 4</li>
  <li class="ui-state-default">Item 5</li>
</ul>

<ul id="sortable2" class="connectedSortable">
  <li class="ui-state-highlight">Item 1</li>
  <li class="ui-state-highlight">Item 2</li>
  <li class="ui-state-highlight">Item 3</li>
  <li class="ui-state-highlight">Item 4</li>
  <li class="ui-state-highlight">Item 5</li>
</ul>


</body>
</html>

參考鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM