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. Redis 缓存服务器

    Redis 服务器 Remote Dictionay Server   Redis是一个key-value持久化产品,通常被称为数据结构服务器. Redis的key是string类型:value可以是 ...

  2. Texas Instruments matrix-gui-2.0 hacking -- generate.php

    <?php /* * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/ * * * Redistrib ...

  3. 文件的存储GridFS

    1.存储路径--->可以理解就是存储路径,然后在通过路径来获取文件 将文件放在本地路径(网络路径)下,然后数据库中存储该文件的查找路径 db.log.insert({filename:" ...

  4. [LeetCode&Python] Problem 693. Binary Number with Alternating Bits

    Given a positive integer, check whether it has alternating bits: namely, if two adjacent bits will a ...

  5. CodeForces - 1093G:Multidimensional Queries (线段树求K维最远点距离)

    题意:给定N个K维的点,Q次操作,或者修改点的坐标:或者问[L,R]这些点中最远的点. 思路:因为最后一定可以表示维+/-(x1-x2)+/-(y1-y2)+/-(z1-z2)..... 所以我们可以 ...

  6. centos7安装mysql5.7的终极解决方案

    在centos7中安装最新版本mysql5.7.10可能会出现各种各样的问题,不管出现什么问题,先仔细阅读下面,或许对你有帮助! 1.systemctl stop mysqld.service 关闭m ...

  7. HPU 第三次积分赛:阶乘之和(水题)

    阶乘之和 描述 对于整数pp,给出以下定义 p=x_{1}!+x_{2}!+x_{3}!+...+x_{q}!(x_{i}<x_{j}for\ all\ i<j )p=x1​!+x2​!+ ...

  8. Cassandra 数据库, python cqlsh命令

    ★  cql操作数据库(cqlsh.bat: python cqlsh命令操作<优缺点:https://blog.csdn.net/vbirdbest/article/details/77662 ...

  9. python 2个dict如何合并

    dictMerged2 = dict( dict1, **dict2 ) 这种效率比较高 refer to: http://www.pythoner.com/13.html

  10. C语言指针和操作系统的逻辑地址

    你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干.只有在Intel实模式下,逻辑地址才和物理地址相等 ...