JSFiddle - React, Tailwind, and code Playground
by Andy You
HTML
<div class="columns">
<div class="column" draggable="true">
<header>A</header>
</div>
<div class="column" draggable="true">
<header>B</header>
</div>
<div class="column" draggable="true">
<header>C</header>
</div>
</div>
SCSS
/**
* 防止可以被拖移的元素內部的文字被選取造成局部拖移
*/
[draggable] {
-moz-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
user-select: none;
/**
* 舊版 WebKit 需要此設定讓元素可以被拖移
*/
-khtml-user-drag: element;
-webkit-user-drag: element;
}
.column {
height: 150px;
width: 150px;
line-height: 150px;
float: left;
border: 1px solid #ccc;
background-color: pink;
margin-right: 5px;
text-align: center;
cursor: move;
header {
text-shadow: #fff 0 1px;
box-shadow: 5px;
}
}
Babel + JSX
var columns = document.querySelectorAll('.columns .column')
;[...columns].forEach( (col) => {
col.addEventListener('dragstart', dragStart, false)
})
function dragStart (e) {
this.style.opacity = 0.4
}