拖拉事件的种类

拖拉(drag)指的是,用户在某个对象上按下鼠标键不放,拖动它到另一个位置,然后释放鼠标键,将该对象放在那里。

具体的api可查看

拖拽变色demo

  1. <div draggable="true">
  2. 此区域可拖拉
  3. </div>
  1. div.addEventListener('dragstart', function (e) {
  2. this.style.backgroundColor = 'red';
  3. }, false);
  4. div.addEventListener('dragend', function (e) {
  5. this.style.backgroundColor = 'green';
  6. }, false);

拖拽操作demo

  1. /* HTML 代码如下
  2. <div class="dropzone">
  3. <div id="draggable" draggable="true">
  4. 该节点可拖拉
  5. </div>
  6. </div>
  7. <div class="dropzone"></div>
  8. <div class="dropzone"></div>
  9. <div class="dropzone"></div>
  10. */
  11. // 被拖拉节点
  12. var dragged;
  13. document.addEventListener('dragstart', function (event) {
  14. // 保存被拖拉节点
  15. dragged = event.target;
  16. // 被拖拉节点的背景色变透明
  17. event.target.style.opacity = 0.5;
  18. }, false);
  19. document.addEventListener('dragend', function (event) {
  20. // 被拖拉节点的背景色恢复正常
  21. event.target.style.opacity = '';
  22. }, false);
  23. document.addEventListener('dragover', function (event) {
  24. // 防止拖拉效果被重置,允许被拖拉的节点放入目标节点
  25. event.preventDefault();
  26. }, false);
  27. document.addEventListener('dragenter', function (event) {
  28. // 目标节点的背景色变紫色
  29. // 由于该事件会冒泡,所以要过滤节点
  30. if (event.target.className === 'dropzone') {
  31. event.target.style.background = 'purple';
  32. }
  33. }, false);
  34. document.addEventListener('dragleave', function( event ) {
  35. // 目标节点的背景色恢复原样
  36. if (event.target.className === 'dropzone') {
  37. event.target.style.background = '';
  38. }
  39. }, false);
  40. document.addEventListener('drop', function( event ) {
  41. // 防止事件默认行为(比如某些元素节点上可以打开链接),
  42. event.preventDefault();
  43. if (event.target.className === 'dropzone') {
  44. // 恢复目标节点背景色
  45. event.target.style.background = '';
  46. // 将被拖拉节点插入目标节点
  47. dragged.parentNode.removeChild(dragged);
  48. event.target.appendChild( dragged );
  49. }
  50. }, false);

JavaScript事件——拖拉事件的更多相关文章

  1. javascript高级程序设计---拖拉事件

    拖拉事件 拖拉指的是,用户在某个对象上按下鼠标键不放,拖动它到另一个位置,然后释放鼠标键,将该对象放在那里. 拖拉的对象有好几种,包括Element节点.图片.链接.选中的文字等等.在HTML网页中, ...

  2. JS怎样将拖拉事件与点击事件分离?

    帖子:http://bbs.csdn.net/topics/390785395?page=1#post-397369340 怎样将拖拉事件跟点击事件分离? 须要做到:拖拉时不触动点击事件 <ht ...

  3. javascript中的事件冒泡、事件捕获和事件执行顺序

    谈起JavaScript的 事件,事件冒泡.事件捕获.阻止默认事件这三个话题,无论是面试还是在平时的工作中,都很难避免. DOM事件标准定义了两种事件流,这两种事件流有着显著的不同并且可能对你的应用有 ...

  4. javascript event(事件对象)详解

    javascript event(事件对象)详解   1. 事件对象     1. 事件对象 Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态. 什 ...

  5. JavaScript中的事件

    1.冒泡事件:事件按照特定的的事件目标到最不特定的事件目标顺序触发(它是按照DOM的层次节后依次做出的反应) 2.捕获事件:事件从不确定的对象document 开始触发然后到最精确(也可以在窗口级别捕 ...

  6. JavaScript 详说事件机制之冒泡、捕获、传播、委托

    DOM事件流(event  flow )存在三个阶段:事件捕获阶段.处于目标阶段.事件冒泡阶段. 事件捕获(event  capturing):通俗的理解就是,当鼠标点击或者触发dom事件时,浏览器会 ...

  7. javascript 中的事件机制

    1.javascript中的事件. 事件流 javascript中的事件是以一种流的形式存在的. 一个事件会也有多个元素同时响应. 有时候这不是我们想要的效果, 我们只是需要某个特定的元素相应我们的绑 ...

  8. Javascript事件模型系列(一)事件及事件的三种模型

    一.开篇 在学习javascript之初,就在网上看过不少介绍javascript事件的文章,毕竟是js基础中的基础,文章零零散散有不少,但遗憾的是没有看到比较全面的系列文章.犹记得去年这个时候,参加 ...

  9. 【初窥javascript奥秘之事件机制】论“点透”与“鬼点击”

    前言 最近好好的研究了一番移动设备的点击响应速度,期间不断的被自己坑,最后搞得焦头烂额,就是现在可能还有一些问题,但是过程中感觉自己成长不少, 最后居然感觉对javascript事件机制有了更好的认识 ...

随机推荐

  1. ubuntu 安装 typora

    # or run: # sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE wget -qO ...

  2. pv回收

    学习cloudman中的k8s 152课,创建pod时,需要在k8s-host2 中挂着到在k8s-master 中/nfs中创建的挂载目录,结果提示没有/nfs/pv1 root@k8s-maste ...

  3. 洛谷 题解 P2540 【斗地主增强版】

    [分析] 暴力搜顺子,贪心出散牌 为什么顺子要暴力? 玩过斗地主的都知道,并不是出越长的顺子越好,如果你有一组手牌,3,4,5,6,7,6,7,8,9,10,你一下把最长的出了去,你会单两张牌,不如出 ...

  4. Deepin中安装docker

    1.sudo apt install docker-ce: 2.安装好后可以用docker version查看一下是否成功,还可以通过网络详情里是否多了一个docker0来判断: 3.sudo use ...

  5. LeetCode 897. 递增顺序查找树(Increasing Order Search Tree)

    897. 递增顺序查找树 897. Increasing Order Search Tree 题目描述 给定一个树,按中序遍历重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有 ...

  6. visual studio code编辑python文件

    visual studio code 安装.通过360软件管家,查找visual studio code 下载安装即可 设置visual studio code为中文 打开进入软件,Ctrl + Sh ...

  7. 04 IO流(二)——IO类的记忆方法、使用场景

    关于IO流以前写的PPT式笔记请跳转:https://blog.csdn.net/SCORPICAT/article/details/87975094#262___1451 IO流的主要结构 记忆方法 ...

  8. maven 打包成 .jar 文件执行:没有主清单属性错误

    报错原因是pom.xml配置文件中没有指定main入口信息,在pom.xml文件中添加如下代码: <build> <plugins> <plugin> <gr ...

  9. PB计算两个日期相差月份(计算工龄)

    ll_intime_y = year(date(this.object.in_factory_day[row])) ll_intime_m = month(date(this.object.in_fa ...

  10. PowerBuilder学习笔记之删除和加载PBL文件的方法

    删除PBL目录的方法:直接点删除键删除 加载PBL文件的方法:点Browse按钮选择PBL文件