拖放元素示例 Droppable

Source
Output
QRCode
<!doctype html> <html> <head> <meta charset="utf-8"/> <title>Draggable 简单使用示例</title> <link rel="stylesheet" href="//g.alicdn.com/kissy/k/5.0.1/css/base.css"> <link rel="stylesheet" type="text/css" href="assets/box.css"> <style type="text/css"> .container { height: 270px; padding: 10px; position: relative; } .component { margin: 10px 10px; width: 90px; height: 90px; display: inline-block; *display: inline; *zoom: 1; overflow: hidden; line-height:20px; } .cheader { cursor: move; border: 1px solid black; height: 20px; line-height: 20px; } #drop, #drop3 { height: 100px; line-height: 30px; } .box .ks-dd{ background:white; opacity:1; *filter:alpha(opacity=100); } .box .ks-dd-drag-over { background: #a52a2a; } .box .ks-dd-drop-over { background: #fa8072; opacity:0.6; *filter:alpha(opacity=60); } #container3 .component .cheader { cursor: move; } </style> <script src="//g.alicdn.com/kissy/k/5.0.1/seed-debug.js"></script> </head> <body> <h3>Droppable 简单使用示例</h3> <p> 注意区分Draggable配置项 mode 的三种模式:<br> intersect :区域相交就算enter <br> strict : drag 区域完全在 drop 区域内才算 <br> point : 鼠标在移动中进入 drop 区域内 默认 point </p> <div id="container" class="container"> <div class="box component" id="intersect"> <s class="box-tp"><b></b></s> <div class="box-hd"> <h3>Drag</h3> </div> <div class="box-bd"> intersect drag </div> <s class="box-bt"><b></b></s> </div> <div class="box component" id="strict"> <s class="box-tp"><b></b></s> <div class="box-hd"> <h3>Drag</h3> </div> <div class="box-bd"> strict drag </div> <s class="box-bt"><b></b></s> </div> <div class="box component" id="point"> <s class="box-tp"><b></b></s> <div class="box-hd"> <h3>Drag</h3> </div> <div class="box-bd"> point drag </div> <s class="box-bt"><b></b></s> </div> <div class="box" > <s class="box-tp"><b></b></s> <div id="drop" class="box-bd ks-dd"> drop zone </div> <s class="box-bt"><b></b></s> </div> </div> <script type="text/javascript"> require(['node', 'dd'], function (Node, DD) { var DDM = DD.DDM, Draggable = DD.Draggable, Droppable = DD.Droppable, DropMode=Draggable.DropMode; var p; /** * 集中监听所有 */ DDM.on("dragstart", function(ev) { var c = ev.drag; p = c.get("dragNode").css("position"); }); DDM.on("dragend", function(ev) { var c = ev.drag; c.get("dragNode").css("position", p); }); /** * 简单拖放 */ c1 = new Draggable({ node:"#intersect", //模式, // intersect :区域相交就算enter // strict : drag 区域完全在 drop 区域内才算 // point : 鼠标在移动中进入 drop 区域内 //默认 point mode:DropMode.INTERSECT, move:true }); new Draggable({ node:"#strict", mode:DropMode.STRICT, move:true }); new Draggable({ node:"#point", move:true }); var drop = new Droppable({ node:"#drop" }); function onhit(ev) { ev.drag.get("node").css("margin", "5px 10px"); ev.drag.get("node").appendTo(ev.drop.get("node")); ev.drag.destroy(); } drop.on("drophit",onhit); }); </script> </body> </html>