1.原效果网页

拖拽后:

2.主要实现代码

 <div class="div1" id="div1">
<!--在h5中,如果想拖拽元素,久必须为元素添加draggable="true".图片和超链接默认就可以拖拽-->
<p id="pe" draggable="true">试着把我拖拽过去1</p>
<p id="pe1" draggable="true">试着把我拖拽过去2</p>
</div>
<div class="div2" id="div2"></div>
<div class="div3" id="div3"></div>
<script>
/*学习拖拽,主要急救室学习拖拽事件*/
//var ogj=null;//当前被拖拽的元素
/*var p = document.querySelector("#pe");
var div2 = document.querySelector("#div2");
var div1 = document.querySelector("#div1");*/
/*应用于被拖拽元素的事件*/
/*
* ondrag 应用于拖拽元素,整个拖拽过程都会调用--持续
* ondragstart 应用于拖拽元素,当拖拽开始是调用
* ondragleave 应用于拖拽元素,当鼠标离开拖拽元素是调用
* ondragend 应用于拖拽元素,当拖拽结束时调用
* */
document.ondragstart=function (e) {
/*通过事件捕获来获取前被拖拽的子元素*/
e.target.style.opacity=0.5;//拖拽元素半透明
e.target.parentNode.style.borderWidth="5px";
ogj=e.target;
//console.log("ondragstart");
/*通过dataTransfer来实现数据的存储于获取*/
/*
* setData(format,data);
* format:数据的类型:text/html text/uri-list
* Data:数据:一般来说是字符串值
* */
e.dataTransfer.setData("text/html",e.target.id);
}
document.ondragend=function (e) {
e.target.style.opacity=1;//拖拽元素还原透明度100%
e.target.parentNode.style.borderWidth="1px";
console.log("ondragend");
}
document.ondragleave=function (e) { }
document.ondrag=function (e) { }
/*
* 应用于目标元素的事件
* ondragenter 应用于目标元素,当拖拽元素进入时调用
* ondragover 应用于目标元素,当停留在目标元素上时调用
* ondrop 应用于目标元素,当在目标元素上松开鼠标时调用
* ondragleave 应用于目标元素,当鼠标离开目标元素时调用
* */
document.ondragenter=function (e) {
console.log("-----"+e.target);
}
document.ondragover=function (e) {
console.log("ondragover");
/*如果想触发ondrop事件,那么久必须在这个位置阻止浏览器的默认行为*/
e.preventDefault();
}
/*浏览器默认会阻止ondrop事件:我们必须在ondragover中阻止浏览器的默认行为*/
document.ondrop=function (e) {
console.log("ondrop");
/*添加被拖拽的元素到当前目标元素*/
//e.appendChild(p);
/*通过e.dataTransfer.setSata存储的数据,只能在drop事件中获取*/
var id = e.dataTransfer.getData("text/html");
console.log(id);
e.target.appendChild(document.getElementById(id));
}
document.ondragleave=function (e) {
console.log("目标元素:ondragleave");
}
</script>

h5-拖拽接口的更多相关文章

  1. 从零开始学 Web 之 HTML5(四)拖拽接口,Web存储,自定义播放器

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  2. H5拖拽 构造拖拽及缩放 pdf展示

    前言: 协助项目需要实现一个签名的功能. 功能说明:1.有文本签名和头像签名.2.头像签名需要实现可拖拽功能.3.需要展示的是pdf的文件并需要获取签名位于pdf文件的相对位置. 功能一:实现拖拽 思 ...

  3. H5 拖拽读取文件和文件夹

    1)拖拽方面的重点是:ondragover 事件 和 ondrop 事件 ondragover 是必须的,ondragover 事件里禁用掉 html 的默认事件,否则 ondrop 事件将无效(直接 ...

  4. H5拖拽 构造拖拽及缩放 pdf文件转换为html预览

    前言: 协助项目需要实现一个签名的功能. 功能说明:1.有文本签名和头像签名.2.头像签名需要实现可拖拽功能.3.需要展示的是pdf的文件并需要获取签名位于pdf文件的相对位置. 功能一:实现拖拽 思 ...

  5. H5 拖拽操作

    H5 拖拽操作 前言 在原生H5中,可以通过提供的api实现在网页内元素的拖拽操作.相对于传统的写法更加的简单. 而想要实现拖拽,主要需要进行两个方面的工作,第一是给元素设置draggable='tr ...

  6. 仿h5拖拽

    在h5中有个拖拽的声明式命令,就如html属性一样,简单强大. 而在网页上拖拽的功能还是需求很大的,所以对这方面应该去仔细了解一下. 所以仿一一下它的实现.只是仿了它的复制一份到目标容器的功能.它还有 ...

  7. h5拖拽上传图片

    h5实现拖拽上传图片 本文将为大家介绍如何通过js实现拖拽上传图片. 首先我们要禁用调浏览器默认的拖拽事件: window.onload = function(){ //拖离 document.add ...

  8. H5 拖拽,一个函数搞定,直接指定对象设置可拖拽

    页面上,弹个小窗体,想让它可以拖拽,又不想 加载一堆js,就简单的能让他可以拖动? 嗯,下面有这样一个函数,调用下就好了! 1. 先来说说 H5的 拖拽 在 HTML5 中,拖放是标准的一部分,任何元 ...

  9. H5 拖拽元素

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. H5拖拽事件的完整过程和语法

    <!DOCTYPE HTML> <html> <head> <style type="text/css"> #div1 { widt ...

随机推荐

  1. 32位CPU和64位CPU 区别

    操作系统只是硬件和应用软件中间的一个平台. 32位操作系统针对的32位的CPU设计. 64位操作系统针对的64位的CPU设计.操作系统只是硬件和应用软件中间的一个平台. 32位操作系统针对的32位的C ...

  2. [LeetCode] 934. Shortest Bridge 最短的桥梁

    In a given 2D binary array A, there are two islands.  (An island is a 4-directionally connected grou ...

  3. 3.python进制及其之间的转换

  4. IDE一直在indexing, 造成系统卡死解决方法

    点击箭头指向,重启idea

  5. 一、REACT概述

    1.前端/react概述 <从零react> 1.前端工 程概述 Web跨平台.跨浏览 器的应用开发场景 网页浏览器(Web Browser) 通过 CLI 指令去操作的 Headless ...

  6. jedis哨兵模式的redis组(集群),连接池实现。(客户端分片)

    java 连接redis 我们都使用的 是jedis  ,对于redis这种频繁请求的场景我们一般需要对其池化避免重复创建,即创建一个连接池 ,打开jedis的 jar包我们发现,jedis对池已经有 ...

  7. hdu 2583 How far away ? 离线算法 带权求最近距离

    How far away ? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  8. css 径向渐变

    .example { width: 150px; height: 80px; background: -webkit-radial-gradient(red, green, blue); /* Saf ...

  9. UVA - 11277 Cyclic Polygons(二分)

    题意:已知圆的内接多边形的各个边长,求多边形的面积. 分析: 1.因为是圆的内接多边形,将多边形的每个顶点与圆心相连,多边形的面积就等于被分隔成的各三角形之和. 2.根据海伦公式,任意一个三角形的面积 ...

  10. Android之Intent相关知识

    什么是Intent?Intent的作用? Intent是一个消息传递对象,我们可以通过它来启动其他组件或者在组件之间传递数据. 通过Intent启动其他组件 Intent可以用来启动Activity, ...