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. FZU 1202

    http://acm.fzu.edu.cn/problem.php?pid=1202 二分图最大匹配,问哪些边是必要的,O(n^3)的方法 删边的时候把连接关系也要删掉,如果在此基础上无法找到增广路, ...

  2. tensorflow中屏蔽输出的log信息方法

    tensorflow中可以通过配置环境变量 'TF_CPP_MIN_LOG_LEVEL' 的值,控制tensorflow是否屏蔽通知信息.警告.报错等输出信息. 使用方法: import os imp ...

  3. 【机器学习算法】cascade classifier级联分类器

    前言 参考 1.级联分类器: 完

  4. ajax提交post请求出现数组被截断情况的解决方法

    一.场景 php post 提交数据时传的数据时数组,没有多数据进行序列化处理.发现传到服务端时,部分数据丢失,查询了资料发现php对参数个数有限制,限制在php配置文件中(max_input_var ...

  5. hdu1281 棋盘游戏 二分图最大匹配

    小希和Gardon在玩一个游戏:对一个N*M的棋盘,在格子里放尽量多的一些国际象棋里面的“车”,并且使得他们不能互相攻击,这当然很简单,但是Gardon限制了只有某些格子才可以放,小希还是很轻松的解决 ...

  6. JavaScript原型继承工作原理

    原型继承的定义 当你阅读关于JS原型继承的解释时,你时常会看到以下这段文字: 当查找一个对象的属性时,JavaScript 会向上遍历原型链,直到找到给定名称的属性为止.——出自JavaScript秘 ...

  7. test20180922 交错的字符串

    题意 分析 这个数据范围容易使人想到折半搜索. 我们将字符串分为前后两部分.如果前半部分中搜得的前缀串为{S1, S2},那么后半部分中搜得的后缀串必须为{rev(S2), rev(S1)},且为有序 ...

  8. django中的FBV和CBV

    django中请求处理方式有2种:FBV 和 CBV 一.FBV FBV(function base views) 就是在视图里使用函数处理请求. 看代码: urls.py from django.c ...

  9. Hadoop全分布模式操作

    http://blog.csdn.net/wangloveall/article/details/20767161 摘要:介绍Hadoop全分布模式操作,实现真正意义上的集群架构. 关键词:Hadoo ...

  10. android 图片解码显示流程

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/jingxia2008/article/details/32327699 问题来源 android 能 ...