zoukankan      html  css  js  c++  java
  • H5的draggable属性和jqueryUI.sortable

    拖放

    拖放是一种常见的特性,即抓取对象以后拖到另一个位置。

    一、HTML5 新特性

    在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。

    EventOn Event Handler描述
    drag ondrag Fired when an element or text selection is being dragged.被拖动时触发一个元素或文本选择
    dragend ondragend Fired when a drag operation is being ended (for example, by releasing a mouse button or hitting the escape key). (See Finishing a Drag.)
    dragenter ondragenter Fired when a dragged element or text selection enters a valid drop target. (See Specifying Drop Targets.)
    dragexit ondragexit Fired when an element is no longer the drag operation's immediate selection target.
    dragleave ondragleave Fired when a dragged element or text selection leaves a valid drop target.
    dragover ondragover Fired when an element or text selection is being dragged over a valid drop target (every few hundred milliseconds).
    dragstart ondragstart Fired when the user starts dragging an element or text selection. (See Starting a Drag Operation.)
    drop ondrop Fired when an element or text selection is dropped on a valid drop target. (See Performing a Drop.)


     

     1 <!DOCTYPE HTML>
     2 <html>
     3 <head>
     4 <meta charset="utf-8">
     5 <style>
     6     #div1{height: 150px;border: 1px solid #000;}
     7 </style>
     8 <script type="text/javascript">
     9 /*
    10 1、dataTransfer对象是用于保存数据的 和 取出数据
    11 2、preventDefault() 来避免浏览器对数据的默认处理
    12 3、appendChild 方法 追加到元素内
    13 */
    14 function allowDrop(ev)
    15 {
    16      console.log('over')
    17      // preventDefault() 来避免浏览器对数据的默认处理
    18     ev.preventDefault();
    19 }
    20 
    21 function dragstart(ev)
    22 {
    23     console.log('dragstart')
    24     // The DataTransfer object is used to hold the data that is being dragged during a drag and drop operation.  dataTransfer对象是用于保存数据的
    25     ev.dataTransfer.setData("Text",ev.target.id);
    26 }
    27 
    28 function drop(ev)
    29 {
    30         console.log('into')
    31     ev.preventDefault();
    32     var data=ev.dataTransfer.getData("Text");
    33     // appendChild 方法 追加到元素内
    34     ev.target.appendChild(document.getElementById(data));
    35 }
    36 
    37 </script>
    38 </head>
    39 <body>
    40 <!-- 
    41 ondrop:            被拖动时触发一个元素或文本选择,元素释放时执行
    42 ondragover:        被拖动时覆盖在元素上时 执行
    43  -->
    44 <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    45 <!-- 
    46 draggable="true"    开启拖拽属性
    47 ondragstart            开始拖拽的元素时执行
    48  -->
    49 <img id="drag1" src="./css/a.png" draggable="true" ondragstart="dragstart(event)" width="336" height="69" />
    50 
    51 </body>
    52 </html>

    二、JQueryUI.sortable

    通过监控鼠标移动,修改position样式

     1 <!doctype html>
     2 <html lang="en">
     3 <head>
     4   <meta charset="utf-8">
     5   <meta name="viewport" content="width=device-width, initial-scale=1">
     6   <title>jQuery UI Sortable - Connect lists</title>
     7   <link rel="stylesheet" href="css/jquery-ui.css">
     8   <link rel="stylesheet" href="css/style.css">
     9   <style>
    10   #sortable1, #sortable2 {
    11     border: 1px solid #eee;
    12     width: 142px;
    13     min-height: 20px;
    14     list-style-type: none;
    15     margin: 0;
    16     padding: 5px 0 0 0;
    17     float: left;
    18     margin-right: 10px;
    19   }
    20   #sortable1 li, #sortable2 li {
    21     margin: 0 5px 5px 5px;
    22     padding: 5px;
    23     font-size: 1.2em;
    24     width: 120px;
    25   }
    26   </style>
    27   <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    28   <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    29   <script>
    30   $( function() {
    31     $( "#sortable1" ).sortable({
    32       connectWith: ".connectedSortable"
    33     })
    34     $( "#sortable2" ).sortable({
    35       connectWith: ".connectedSortable"
    36     })
    37 
    38 
    39 
    40   } );
    41   </script>
    42 </head>
    43 <body>
    44  
    45 <ul id="sortable1" class="connectedSortable">
    46   <li class="ui-state-default">Item 1</li>
    47   <li class="ui-state-default">Item 2</li>
    48   <li class="ui-state-default">Item 3</li>
    49   <li class="ui-state-default">Item 4</li>
    50   <li class="ui-state-default">Item 5</li>
    51 </ul>
    52  
    53 <ul id="sortable2" class="connectedSortable">
    54   <li class="ui-state-highlight">Item 1</li>
    55   <li class="ui-state-highlight">Item 2</li>
    56   <li class="ui-state-highlight">Item 3</li>
    57   <li class="ui-state-highlight">Item 4</li>
    58   <li class="ui-state-highlight">Item 5</li>
    59 </ul>
    60  
    61  
    62 </body>
    63 </html>
     1    $(".choose_chart").sortable({         //sortable化 dom
     2                 axis:'x',
     3                 cursor: "move",
     4                 items :"li",                        //只是li可以拖动
     5                 opacity: 0.6,                       //拖动时,透明度为0.6
     6                 revert: false,                       //释放时,增加动画
     7                 over    : function(event, ui){       //点击
     8                     console.log(0)
     9                     Field.chooseID=event.toElement.id;
    10                     if($(".borderBlue").length>0){
    11 //                     if($("#report_type").val()==0){
    12                             gs.getItemDataToChart()
    13 //                     }
    14                     }
    15                     isOff = true;
    16                 },
    17                 out:function(event,ui){console.log(1)},//移动
    18                 beforeStop:function(event,ui){console.log(2)},//停止
    19                 update:function(event,ui){console.log(3)},//更换
    20                 stop:function(event,ui){ //结束
    21                     console.log(4)
    22 //                    gs.chartIsEmpty();
    23                     if(Field.isAll){
    24                         $(".add_chart").append(addChartFunc[Field.chooseID]);
    25                     }else{
    26                         $("#alert2").dialog("open");
    27                         $("#alert2").html("曲线基本信息必须填写");
    28                     }
    29                     $(".choose_item").html(chooseChartStr)
    30                 },

    http://www.w3school.com.cn/html5/html_5_draganddrop.asp

    http://api.jqueryui.com/sortable/  

  • 相关阅读:
    FZU 2272 Frog 第八届福建省赛 (鸡兔同笼水题)
    HDU 1166 敌兵布阵(线段树点更新区间求和裸题)
    poj 2251 Dungeon Master (BFS 三维)
    16 多校 8 Ball (贪心排序)很巧妙的思路啊~
    16 多校8 Rikka with Parenthesis II
    紫书动规 例题9-7 UVA
    紫书动规 例题9-6 UVA
    紫书动规 例题9-5 UVA
    紫书动规 例题9-4 UVA
    紫书动规 例题9-3 UVA
  • 原文地址:https://www.cnblogs.com/blog-index/p/6775283.html
Copyright © 2011-2022 走看看