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. [LeetCode&Python] Problem 868. Binary Gap

    Given a positive integer N, find and return the longest distance between two consecutive 1's in the ...

  2. [LeetCode&Python] Problem 883. Projection Area of 3D Shapes

    On a N * N grid, we place some 1 * 1 * 1 cubes that are axis-aligned with the x, y, and z axes. Each ...

  3. MySQL--REPLACE INTO更新自增列值引发的异常

    ##=====================================================================##测试环境:MySQL版本:MySQL 5.7.19复制 ...

  4. redash docker 运行

    redash .superset .metabase 都是很不错的数据分析工具,支持多种数据源,同时可以方便的生成报表 基本上都支持定制化报表界面.通知(定时),metabase 有点偏产品,supe ...

  5. grandstack graphql 工具基本试用

      grandstack 是一个方便graphql 应用开发的工具 使用docker-compose 运行 环境准备 官方的starter 比较好,已经是使用docker-compose 创建好了所有 ...

  6. dongle0

    *CLI> -- [dongle0] Trying to connect on /dev/ttyUSB2... 插拔dongle[Jan 13 23:42:20] WARNING[3443]: ...

  7. Oracle GI 日志收集工具 - TFA 简介

    转载自:https://blogs.oracle.com/Database4CN/entry/tfa_collector_%E4%BB%8B%E7%BB%8D 1.TFA的目的: TFA是个11.2版 ...

  8. 处理json的常用java类库:Json-lib(org.json)、Gson、Jackson、Fastjson

    更多的处理json的java类库,有人做了性能对比,GitHub地址:https://github.com/fabienrenaud/java-json-benchmark 处理json的java类库 ...

  9. Django模板语言(常用语法规则)

    Django模板语言 The Django template language 模板中常用的语法规则 {最新版本的Django语法可能有改变,不支持的操作可能支持了.[HTML教程 - 基本元素/标签 ...

  10. bzoj 3674 可持久化并查集加强版——可持久化并查集

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3674 用主席树维护 fa[ ]  和 siz[ ] .改 fa[ ] 和改 siz[ ] 都 ...