1、梳理知识点
1、事件对象   e || event 
2、事件对象的属性  
   鼠标事件对象 : 坐标属性 :  clientX  clientY  pageX  pageY   offsetX  offsetY
   键盘事件对象 : 获取按键值 keyCode  
3、事件流 事件冒泡 和 事件 捕获 
4、阻止冒泡 : e.stopPropagation()   e.cancelBubble = true   
5、事件监听 addEventListener( "click",function(){},true )
 
2、阻止浏览器的默认行为  
浏览器的默认行为: 
    图片默认被拖拽   
    选中的文字默认被拖拽
    右键单击浏览器出现菜单
    submit按钮默认跳转
    超链接标签 默认跳转
阻止浏览器的默认行为 :    
        e.preventDefault?e.preventDefault():e.returnValue=false;  或者   return false;
 
3、事件委托(事件代理)
委托 : 让别人做
事件委托 : 将某个事件委托给另一个元素( 委托给父级元素  这里的父级可以是直接父元素 也可以是爷爷 曾爷爷... )
 
事件委托好处:
    1、为某些元素的父级元素添加事件,提高程序的执行效率
    2、动态创建的元素 添加事件时,可以将事件添加在动态创建的函数体外面 
委托实现 : 
    父级元素.onclick = function(){ ... }
    父级元素.addEventListener("事件",function(){ ... })
 
获取事件源兼容:
  target = e.target || e.srcElement;  
不是所有的事件都可以实现委托,不能实现冒泡的事件就不能实现委托
 
4、json 对象
什么是json(javascript object notation) :  javascript 的对象表示法
    json是一种轻量级的数据交换格式,用于跨平台的数据交换 
    跨平台 : 客户端和服务器之间的数据交换
作用 :存储数据 
json定义 : 
 var json = {
        键 : 值,
        键 : 值,
        .....
    }
 说明 : json中的键 用双引号括起来  值可以是任意类型的数据  
    严格的json值不会出现function (){...}   严格的json键用双引号括起来
 获取json数据 :
    json.键  或  json["键"]
 json对象的遍历 : 使用 for ...in 
            
5、拖拽
需要事件 : onmousedown  onmousemove  onmouseup
拖拽思路 :
鼠标按下 onmousedown : 记录鼠标按下时的内部偏移量
    var disx = e.offsetX;
    var disy = e.offsetY;
鼠标移动 onmousemove : 设置被拖拽元素的left 和 top值  
    left = e.pageX - disx;
    top = e.pageY - disy;
鼠标抬起 onmouseup : 取消移动事件
    对象.onmousemove = null
 
获取window窗口的宽度 : window.innerWidth   高度 : window.innerHeight

json 拖拽的更多相关文章

  1. 前端笔记之jQuery(下)事件&节点操作&净位置&拖拽&页面卷动值&遍历JSON

    一.监听事件大全 1.1 JavaScript事件 onblur 元素失去焦点 onchange 用户改变域的内容 onclick 鼠标点击某个对象 ondblclick 鼠标双击某个对象 onfoc ...

  2. twaver拓扑图拖拽后保存json数据

    功能描述:拓扑图.对节点进行拖拽,序列化获取拓扑图信息,保存到本地localStorage,刷新页面,执行反序列化,从本地获取之前保存的数据,展现之前拖拽后的拓扑 拓展:此处存储用的是web本地存储l ...

  3. json方式的面向对象、拖拽

    //json方式的面向对象 var obj= { a:, b:, c:function(){ alert( } } obj.c();//12 //命名空间 var miaov={}; miaov.co ...

  4. Html5+NodeJS——拖拽多个文件上传到服务器

    实现多文件拖拽上传的简易Node项目,可以在github上下载,你可以先下载下来:https://github.com/Johnharvy/upLoadFiles/. 解开下载下的zip格式包,建议用 ...

  5. 使用jQuery Draggable和Droppable实现拖拽功能

    上篇博客中已经介绍了web开发中基本拖放原理,现在给出需要完成的功能.最后运行的效果如下图所示: 主要功能需求说明: 1.左侧的元素结构最后会通过Ajax call服务器的数据来生成,能支持多级元素. ...

  6. dropzonejs中文翻译手册 DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库.

    http://wxb.github.io/dropzonejs.com.zh-CN/dropzonezh-CN/ 由于项目需要,完成一个web的图片拖拽上传,也就顺便学习和了解了一下前端的比较新的技术 ...

  7. dragsort html拖拽排序

    一.Jquery List DragSort 对于有些页面,如首页的定制,需要进行动态的拖拽排序.由于自己实现比较困难,我们一般会使用一些js插件来实现.dragsort 就是帮助我们完成这一需求.通 ...

  8. JS组件系列——Bootstrap Table 表格行拖拽

    前言:之前一直在研究DDD相关知识,好久没更新JS系列文章了.这两天做了一个简单的业务需求,觉得效果还可以,今天在这里分享给大家,欢迎拍砖~~ 一.业务需求及实现效果 项目涉及到订单模块,那天突然接到 ...

  9. JS组件系列——Bootstrap Table 表格行拖拽(二:多行拖拽)

    前言:前天刚写了篇JS组件系列——Bootstrap Table 表格行拖拽,今天接到新的需要,需要在之前表格行拖拽的基础上能够同时拖拽选中的多行.博主用了半天时间研究了下,效果是出来了,但是感觉不尽 ...

随机推荐

  1. 安装SharePoint Server的主机重命名

    今天我头脑一热, 把安装在WS 2008 R2上的有Stand-alone SharePoint Server 2010的机器重命名了一下, 结果SharePoint Central Admin都进不 ...

  2. vue2.*初体验

    一. 推荐开发环境 二. 安装环境 安装 nvm :curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.3/install. ...

  3. C高级第四次作业

    作业要求一 最简单的wordcount 具体要求:http://www.cnblogs.com/xinz/p/7426280.html 1.设计思路: 0.0版本设计思路: 第一步:读入用户想要操作的 ...

  4. 如何查看linux系统的版本信息

    前言 有时候需要查看linux系统的版本信息,本文将对此简单介绍. 方法 1.输入"uname -a ",可显示电脑以及操作系统的相关信息. 2.输入"cat /etc/ ...

  5. CF1142E/1143B Lynyrd Skynyrd

    CF1142E/1143B Lynyrd Skynyrd 开始读错题了,以为是连续的一段,敲完后才发现是 \(subsequence\) ... 考虑对于 \(a\) 中的每个 \(a_i\) 找到它 ...

  6. 六、物理数据模型(PDM逆向工程)

      物理数据模型PDM 物理数据模型(Physical Data Model,PDM):在数据库的逻辑结构设计好之后,就需要完成其物理设计,PDM就是为实现这一目的而设计的. 物理数据模型是以常用的D ...

  7. POJ2392 Space Elevator

    题目:http://poj.org/problem?id=2392 一定要先按高度限制由小到大排序! 不然就相当于指定了一个累加的顺序,在顺序中是不能做到“只放后面的不放前面的”这一点的! 数组是四十 ...

  8. 洛谷4030(Codeplus11月月赛)可做题1

    题目:https://www.luogu.org/problemnew/show/P4030 原来一个方阵巧妙的充要条件是该方阵的每个2*2子方阵都是巧妙的!!! 可以把每一行选的列视为一个排列,需要 ...

  9. java Scanner中的hasNext()方法

    hasNext()方法判断输入(文件.字符串.键盘等输入流)是否还有下一个输入项,若有,返回true,反之false. Scanner sc = new Scanner(new File(" ...

  10. python 典型文件结构

    #/usr/bin/env/ python #(1) 起始行 "this is a test module" #(2) 模块文档(文档字符串) import sys import ...