<!DOCTYPE html>
 <html>
 <head lang="en">
     <meta charset="UTF-8">
     <title></title>
     <style>
         li{
             list-style: none;
             width: 100px;
             height: 30px;
             background: red;
         }
         div {
             width: 100px;
             height: 50px;
             background: blue;
             margin: 200px;
         }
     </style>
 </head>
 <body>
     <!-- 拖放:
     1.draggable:true(可拖拽)/false(默认);
         ①在chorme/safari下可拖拽,但拖拽出来的是元素的副本,并且带有禁止标志,元素还是在原地;其他浏览器没反应(ie很诡异);
     2.拖放事件:
         ①拖放元素事件:事件对象为被拖拽元素;
             Ⅰdragstart:拖放前触发(按下去的时候是不会触发的,而一拖放的那一刻就触发了);
             Ⅱdrag:拖拽开始与拖拽结束之间连续触发(与原生js中的onmousemove不同的是,onmousemove是鼠标移动的时候才触发,而drag是只要在开始与结束之间,不论鼠标动与不动,都在连续触发);
             Ⅲdrageng:拖放结束触发(即鼠标按键抬起的一刻);
         ②目标元素事件:事件对象为目标元素;
             Ⅰdragenter:移入目标元素的时候触发,相当于onmouseover,区别在于子级不会影响到父级;
             Ⅱdragover:在dragenter和dragleave之间连续触发,相当于drag,只是对象不同而已;
             Ⅲdragleave:移除目标元素的时候触发,相当于onmouseout,区别在于子级不会影响到父级;
             Ⅳdrop:在目标元素上释放鼠标触发(前提是必须要阻止ondragover的默认事件)--除了ff;
     3.事件的执行顺序:
         ①drop不触发的时候:-dragstart>drag>dragenter>dragover>dragleave>dragend;
         ②drap触发的时候(drapover的时候阻止默认事件):dragstart>drag>dragenter>dragovr>drop>dragend
     4.不能释放的光标样式和能释放的光标样式不一样;
     -->
     <ul>
         <li draggable="true">111</li>
         <li draggable="true">222</li>
         <li draggable="true">333</li>
     </ul>
     <div id="div"></div>
     <script>
         var aLi=document.getElementsByTagName('li');
         var oDiv=document.getElementById('div');
         for(var i =0;i<aLi.length;i++){
             aLi[i].ondragstart= function () {
                 this.style.background='blue';
             };
             aLi[i].ondrag= function () {
                 //document.title=i++;
             }
             aLi[i].ondragend= function () {
                 this.style.background='red';
             }
         }
         oDiv.ondragenter= function () {
             this.style.background='red';
         };
         oDiv.ondragover= function (ev) {
             document.title=i++;
             ev=ev||event;
             ev.preventDefault();
             //return false;
         }
         oDiv.ondragleave= function () {
             this.style.background='blue';
         }
         oDiv.ondrop= function () {
             alert(123);
         }
     </script>
 </body>
 </html>

h5拖放-基础知识的更多相关文章

  1. HTML基础知识

    一个完美的web前端攻城狮,所具备的专业素养有:HTML5.XHTML.CSS3.JavaScript.JQuery.PS.PHP等.所以说,我要学的东西还有很多... 没别得,我也是一个H5的初学者 ...

  2. 基础知识漫谈(2):从设计UI框架开始

    说UI能延展出一丢丢的东西来,光java就有swing,swt/jface乃至javafx等等UI toolkit,在桌面上它们甚至都不是主流,在web端又有canvas.svg等等. 基于这些UI工 ...

  3. HTML基础知识总结

    经过这段时间的学习,对于html的一些基础知识有了一定的了解.所谓好记性不如烂笔头,唯有一点点累积,才能汇聚成知识的海洋.现在,我对这段时间的学习做一个总结. 一.HTML的定义 HTML,超文本标记 ...

  4. Runloop基础知识

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  5. 【CSS】 CSS基础知识 属性和选择

    css基础知识 html的基本标签都是千篇一律的,为了能够个性化外观,就需要进行样式的调整,而css就是专门用来维护,管理样式的一种格式.在html中定义css有三种方法 1. 为标签添加style属 ...

  6. 背水一战 Windows 10 (56) - 控件(集合类): ListViewBase - 基础知识, 拖动项

    [源码下载] 背水一战 Windows 10 (56) - 控件(集合类): ListViewBase - 基础知识, 拖动项 作者:webabcd 介绍背水一战 Windows 10 之 控件(集合 ...

  7. 移动端头部适配 meta基础知识

    meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 <meta name="viewport" content="width=device-wid ...

  8. 16第一章 ASP.Net编程基础知识

    第一章        ASP.Net编程基础知识 第一章        ASP.Net编程基础知识 本章首先介绍用ASP.Net技术编制服务器端动态网页所需的网络和HTML标记语言方面的有关知识.然后 ...

  9. Vue框架之基础知识

    在没有学习基础知识之前,我们需要下载vue的js文件,在使用vue语法之前引包 <script src='./vue.js'></script> 一.模板语法 模板语法是一种可 ...

随机推荐

  1. hbase shell下如何使用删除键

    今天刚安装好了hbase,通过Secure CRT登录hbase shell,敲入错误命令无法使用删除键(Backspace或是Ctrl+Backspace都不管用)删除,后来在终端-->仿真下 ...

  2. 黑盒测试用例设计方法&理论结合实际 -> 判定表驱动法

    一. 概念 判定表是分析和表达多逻辑条件下执行不同操作的情况的工具. 二. 判定表驱动法的应用 判定表的优点: a. 能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏.因此,利用判定表能 ...

  3. Robotium 系列(2) - 简单介绍Monkey和MonkeyRunner

    除了Robotium,Android还有其他的自动化测试方法,比如Monkey和MonkeyRunner. 这里就做一个简单的介绍和使用方法. 本文提纲: 1. Android SDK以及SDK中的工 ...

  4. 对单片机的modbus RTU的详细解释(转载)

    Modbus 一个工业上常用的通讯协议.一种通讯约定.Modbus协议包括RTU.ASCII.TCP.其中MODBUS-RTU最常用,比较简单,在单片机上很容易实现.虽然RTU比较简单,但是看协议资料 ...

  5. 关于Aggregate 的一点用法

    比如 我们要 将数组或者对象中的某列或某属性 的值取出,然后 用 逗号隔开. 1.通常我们可能会用for 或foreach 来循环,然后将取出的值并添加至StringBuilder 2.用Aggreg ...

  6. HW5.35

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  7. Sort--冒泡排序

    冒泡排序 public class BubbleSort { public static void bubblesort(int[] a){ for(int i=0;i<a.length-1;i ...

  8. jqgrid 设置单元格编辑/不可编辑

    首先设置不可编辑,如下代码: $(', 'not-editable-cell'); 在单元格上设置一个'not-editable-cell'就可以了,如果需要设置为可编辑,那么可以使用下面的代码: f ...

  9. TCP/IP协议详解内容总结

    TCP/IP协议 TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. TCP/IP分层:   这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为 ...

  10. hdu 5585 Numbers【大数+同余定理】

    Numbers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...