拖放事件

#1. 三个对象
源对象    --  被拖放的元素

过程对象  --  经过的元素

目标对象  --  到达的元素
 
#2. 源对象中的事件

要想让某个元素可以拖拽需要设置draggable="true"大多数的标签该属性默认值是false,但是img标签和a标签的draggable属性默认是true

dragstart 源对象开始拖放

drag 源对象拖放过程中

dragend 源对象拖放结束
 
#3. 过程对象中的事件
dragenter 源对象开始进入过程对象范围( 鼠标进入 )

dragover 源对象在过程对象范围内移动

dragleave 源对象离开过程对象范围
 
#4. 目标对象
drop 源对象被拖放到目标对象内
 

==++pay attention to ! ! !++==

  • 页面中的元素默认都是过程对象
  • 过程对象的dragover事件有一个默认行为!!!
  • 那就是当dragover触发时,drop会失效!!!!
  • 所以需要阻止dragover的默认行为才能触发drop
#5. 简单拖放步骤
1. 将源对象draggable属性值置为true,允许元素可拖放

2. 给源对象绑定开始拖放事件,规定当元素被拖动时会发生什么

3. 给过程对象绑定拖动经过事件,规定经过过程对象时会发生什么

4. 阻止目标对象的dragover事件的默认行为

5. 给目标对象绑定(drop)事件 ,规定放开后会发生什么


#二、dataTransfer

==dataTransfer== 是拖放事件对象中的属性,该属性用于源对象和目标对象之间的数据传输。==数据类型不区分大小写==。

 1. 在源对象里面存储数据 e.dataTransfer.setData("数据类型","值") 

 2. 在目标对象里面获取数据 e.dataTransfer.getData("数据类型") 

 3. 在源对象里面清除数据 e.dataTransfer.clearData("数据类型(可省,省则清除所有)")

 4. effectAllowed 和 dropEffect 这两个属性结合起来设置拖放的视觉效果  copy、link、move

 5. e.dataTransfer.setDragImage(img,100,100);
第一个参数:img对象
第二个参数:鼠标相对于图片的x方向偏移量
第三个参数:鼠标相对于图片的y方向偏移量

移动 drag&drop拖放的更多相关文章

  1. Draggabilly – 轻松实现拖放功能(Drag & Drop)

    Draggabilly 是一个很小的 JavaScript 库,专注于拖放功能.只需要简单的设置参数就可以在你的网站用添加拖放功能.兼容 IE8+ 浏览器,支持多点触摸.可以灵活绑定事件,支持 Req ...

  2. Android开发之Drag&Drop框架实现拖放手势

    Android3.0提供了drag/drop框架,利用此框架可以实现使用拖放手势将一个view拖放到当前布局中的另外一个view中.本文将介绍如何使用拖放框架. 一.实现拖放的步骤 首先,我们先了解一 ...

  3. HTML5中的拖拽与拖放(drag&&drop)

    1.drag 当拖动某个元素时,将会依次触发下列事件: 1)dragstart:按下鼠标键并开始移动鼠标时,会触发该事件 2)drag:dragstart触发后,随即便触发drag事件,而且在元素被拖 ...

  4. 《JavaScript 实战》:实现拖放(Drag & Drop)效果

    拖放效果,也叫拖拽.拖动,学名Drag-and-drop ,是最常见的js特效之一.如果忽略很多细节,实现起来很简单,但往往细节才是难点所在.这个程序的原型是在做图片切割效果的时候做出来的,那时参考了 ...

  5. HTML 学习笔记 (drag & drop)

    拖放(Drag & Drop)是一种常见的特性,即抓取对象以后拖到另一个位置.在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放.过去,我们用监听鼠标的Mousedown.Mouseo ...

  6. HTML5魔法堂:全面理解Drag & Drop API

    一.前言    在HTML4的时代,各前端工程师为了实现拖拽功能可说是煞费苦心,初听HTML5的DnD API觉得那些痛苦的日子将一去不复返,但事实又是怎样的呢?下面我们一起来看看DnD API的真面 ...

  7. Win10/UWP新特性—Drag&Drop 拖出元素到其他App

    在以前的文章中,写过微软新特性Drag&Drop,当时可能由于处于Win10预览版,使用的VS也是预览版,只实现了从桌面拖拽文件到UWP App中,没能实现从UWP拖拽元素到Desktop A ...

  8. Android drag drop

    最近偶尔知道了锤子的one step,所以在网上看相关的东西,有人说android原生drag drop就能实现,我就去学习一下这个drag drop,下面把学习到的东西总结一下: drag drop ...

  9. Android -- Drag&&Drop

    Android3.0提供了drag/drop框架,利用此框架可以实现使用拖放手势将一个view拖放到当前布局中的另外一个view中. 实现拖放的步骤 首先,我们先了解一下拖放过程,从官方文档可以知道, ...

随机推荐

  1. 如何在Camtasia中对录制视频进行动画编辑

    生活中,我们时时会遇到要剪辑视频不知道哪一款软件比较简单:当我们想要录制电脑屏幕时,网上的方法也总是不奏效.那是否有一款软件可以同时兼备这两种功能呢?今天我给大家推荐的便是一款同时兼备这两种功能的软件 ...

  2. 在FL Studio中如何制作和优化你的人声和弦(Vocal Chords)

    人声和弦在Future Bass.Melodic Dubstep等类型的电子音乐中被常用.与一般的和弦相同,其主要起到为主旋律做铺垫的效果,但是人声和弦加入了人声的因素,可以使得和弦更有趣,更有电子音 ...

  3. jQuery 第五章 实例方法 详解内置队列queue() dequeue() 方法

    .queue() .dequeue() .clearQueue() ------------------------------------------------------------------ ...

  4. python接口测试4-数据库获取参数

    首先确定需要传递的参数和接口,使用接口测试工具验证一下,接口和参数没有问题. 编写python接口脚本 import requests import unittest import json impo ...

  5. python+selenium利用cookie记住密码

    先上代码 1 from selenium import webdriver 2 from time import sleep 3 4 dr = webdriver.Chrome() 5 dr.get( ...

  6. 那么多人学习C++,学习它有什么好处?学完以后能从事哪些岗位?

    相信很多人接触编程都是源于大学期间的那堂C++语言程序编程,但是这门课却只告诉了你编程语言是什么,却没告诉你要怎么去熟练掌握编程.所以,不可避免的是许多人在毕业前夕才发现虽然学会了C++,但是好像却不 ...

  7. wsgi_uwsgi_nginx

    1.一些重要概念 https://www.cnblogs.com/xiaonq/p/8932266.html 1.1 web容器 什么是web容器 1.web容器是帮助我们部署java.php.pyt ...

  8. VB的使用

    一.今天讲解VB的使用,明天讲解VC与VB的相互调用: 1.指针是什么?    不需要去找什么标准的定义,它就是一个32位整数,在C语言和在VB里都可以用Long类型来表示.在32位Windows平台 ...

  9. MongoDB 分片集群配置

    本文测试环境为 CentOS 7 和 MongoDB 最新版 (4.0.12) 使用 root 操作 (实际操作中使用非 root 账户启动报错) 零.服务器分配 服务器 102 服务器 103 服务 ...

  10. Python音视频开发:消除抖音短视频Logo的图形化工具实现

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<Python音视频开发:消除抖音短视频Logo和去电视台标的实现详解>节介绍了怎么通过Python+Moviepy+OpenCV实现 ...