html5+javascript div拖拽

來源:互聯網
上載者:User

標籤:

<!doctype html><html><head>  <meta charset="UTF-8">  <title>HTML5-Drag-Demo by 頑Shi</title>  <style>    .column {      height: 200px;      width: 200px;      float: left;      border: 1px solid black;      background-color: green;      margin-right: 5px;      text-align: center;      cursor: move;    }    .column header {      color: black;      text-shadow: #000 0 1px;      box-shadow: 5px;      padding: 5px;      background: red;      border-bottom: 1px solid black;    }    .column.over {      border: 3px dashed #000;    }  </style></head><body>  <div id="columns">    <div class="column" draggable="true"><header>div1</header></div>    <div class="column" draggable="true" ><header>div2</header></div>    <div class="column" draggable="true"><header>div3</header></div>  <div class="column" draggable="true"><header>div4</header></div>    <div class="column" draggable="true"><header>div5</header></div>    <div class="column" draggable="true"><header>div6</header></div>  </div></body><script>  var columns = document.querySelectorAll(‘#columns .column‘);  var colum = document.getElementById(‘columns‘);  var dragEl = null;  window.onload= function(){for(var i in columns){columns[i].index = i;}  };  [].forEach.call(columns,function(column){    column.addEventListener("dragstart",domdrugstart,false);    column.addEventListener(‘dragenter‘, domdrugenter, false);    column.addEventListener(‘dragover‘, domdrugover, false);    column.addEventListener(‘dragleave‘, domdrugleave, false);    column.addEventListener(‘drop‘, domdrop, false);    column.addEventListener(‘dragend‘, domdrapend, false);      });     function domdrugstart(e) {    e.target.style.opacity = ‘0.5‘;         dragEl = this;         e.dataTransfer.effectAllowed = "move";    e.dataTransfer.setData("text/html",this.innerHTML);  }  function domdrugenter(e) {    e.target.classList.add(‘over‘);  }  function domdrugover(e) {    if (e.preventDefault) {      e.preventDefault();     }     e.dataTransfer.dropEffect = ‘move‘;     return false;  }  function domdrugleave(e) {    e.target.classList.remove(‘over‘);   }     function domdrop(e) {    if (e.stopPropagation) {      e.stopPropagation();    }         if (dragEl != this) {  //dragEl.innerHTML = this.innerHTML;//目標位置存放當前dom      //this.innerHTML = e.dataTransfer.getData(‘text/html‘);//當前dom存放目標位置的dom    var list=document.getElementById("columns");      var newIndex = parseInt(this.index);      var locIndex = parseInt(dragEl.index);      var node=document.getElementById("columns").children[locIndex];  list.insertBefore(node,list.children[newIndex]);      var newColumns = document.querySelectorAll(‘#columns .column‘);      for(var i = 0; i < newColumns.length; i++){        newColumns[i].index = i;      }    }             return false;  }  function domdrapend(e) {    [].forEach.call(columns, function (column) {      column.classList.remove(‘over‘);       column.style.opacity = ‘1‘;    });      }     </script></html>

  

html5+javascript div拖拽

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.