【02】拖放的整个过程-魔芋
 
01,创建2个元素,一个为拖放元素dragEle,一个是存放的元素targetEle。添加一些样式。
 
<div class="dragEle">
我是可拖放的魔芋
</div>
<div class="targetEle">
put place
</div>
 
02,设置dragEle的属性draggable 属性为 true。使它可以拖动。
 
03,设置dragEle的dragstart事件。
 
<div class="dragEle" id="dragEle" draggable="true" ondragstart="dragstart(ev)">
我是可拖放的魔芋
</div>
<div class="targetEle" id="targetEle">
put place
</div>
<script>
function dragstart(ev){
ev.dataTransfer.effectAllowed='move';
ev.dataTransfer.setData("Text", ev.target.getAttribute('id'));
ev.dataTransfer.setDragImage(ev.target,0,0);
return true;
}
</script>
 
 
PS:此时,dragEle可以拖动了。如下图:
 

 
04,设置目标元素可以接收拖动元素。
dragover 事件
如果需要设置允许放置,我们必须阻止对元素的默认处理方式。
function dragOver(ev) {
ev.preventDefault();
}
 
05,目标元素的drop事件,添加拖放元素到目标元素。
 
function dragDrop(ev) {

	var src = ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(src));
ev.preventDefault();
ev.stopPropagation();
}
 

 
完整代码如下:
<!DOCTYPE html>
<html lang="zh-cn"> <head>
<meta charset="utf-8">
<title>moyu's demo</title>
<!-- 定义网页搜索引擎索引方式 -->
<meta name="renderer" content="webkit">
<!-- 360,以webkit内核进行渲染 -->
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<!-- 以最新内核进行渲染。 -->
<meta http-equiv="Cache-Control" content="no-siteapp"/>
<!-- 百度禁止转码 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
.dragEle {
width: 100px;
height: 100px;
background: red;
} .targetEle {
width: 300px;
height: 300px;
background: yellow;
}
</style>
</head> <body> <div class="dragEle" id="dragEle" draggable="true" ondragstart="dragstart(event)">
我是可拖放的魔芋
</div>
<div class="targetEle" id="targetEle" ondrop="dragDrop(event)" ondragover="dragOver(event)">
put place
</div>
<script>
function dragstart(ev) {
ev.dataTransfer.effectAllowed = 'move';
ev.dataTransfer.setData("Text", ev.target.id);
var src = ev.dataTransfer.getData("Text");
} function dragEnter(ev) { }
function dragOver(ev) {
ev.preventDefault();//或 return false;
}
function dragDrop(ev) { var src = ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(src));
ev.preventDefault();
ev.stopPropagation();
}
</script>
</body> </html>
 
 
 
 
 
 
 

**

【02】一个实现h5的拖放的整个过程-魔芋的更多相关文章

  1. 领导让我重新做一个微信H5页面!

    leader:我们需要做一个微信H5页面,效果如图,功能如描述,时间越快越好. 需求是不是很简单呢?2015-11-24 12:44:00文末有最新更新 背景描述 前几天微信转发相关项目开发后,这是第 ...

  2. 用vuex写了一个购物车H5页面的示例代码

    用vuex写了一个购物车H5页面的示例代码:https://www.jb51.net/article/152008.htm 通过购物车的一个案列,把vuex学习了一篇. vuex概念浅谈 Vuex 是 ...

  3. h5 简单拖放

    最新的HTML5标准为所有的html元素规定了一个draggable属性,它表明了元素是否可以拖动,默认情况下,图像,链接,选中的文字是可以拖动的,因为他们的draggable属性被自动设置为true ...

  4. 自适应游标共享技术02(一个简单的例子来走近ACS)

    为了不让其他因素干扰实验,参数设置如下: optimizer_mode=ALL_ROWS(使用CBO) optimizer_features_enable=11.2.0.3(使用最新的优化参数) op ...

  5. Flutter 即学即用系列博客——02 一个纯 Flutter Demo 说明

    前言 上一篇文章我们搭建好了 Flutter 的开发环境. Flutter 即学即用--01 环境搭建 这一篇我们通过 Flutter 的一个 Demo 来了解下 Flutter. 开发系统:MAC ...

  6. H5 _拖放使用

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

  7. h5的拖放(drag和drop)

    被拖曳元素发生的事件=== ondragstart:拖拽元素开始被拖拽的时候触发 ondragend:拖拽完成后触发 目标元素发生的事件=== ondragenter:拖曳元素进入目标元素的时候触发 ...

  8. YAML_14 tags给指定的任务定义一个调用标识,以后不用重复整个过程,只需要执行tags标签的部分

    ansible]# vim adhttp.yml --- - hosts: cache   remote_user: root   tasks:     - copy:         src: /r ...

  9. 一个简易h5涉及的ps技巧

    事实证明,很长时间不做,是会忘掉的呀,的呀,呀,啊~ 1.合并图层 CTRL+E合并多个图层 2.切片 3.导出 文件-------导出------存储为web所用格式-------->> ...

随机推荐

  1. 网络流24题 一句话题解(updating)

      搭配飞行员问题   最简单的一道题 就是一个二分图匹配   太空飞行计划   最大权闭合子图 什么叫"最大权闭合子图"呢? 就是给定一个有向图,在里面选择一个点集,使得点集中的 ...

  2. 优先队列 POJ 2431 Expedition

    题目传送门 题意:一辆卡车要行驶L长度,初始有P油,每行驶一个单位长度消耗一单位油.有n个加油站可以加油,问最少加油几次才能行驶L长度,如果不能输出-1 分析:按照挑战书的解法,每走到一个加油站相当于 ...

  3. yii2 checkbox 的使用实例

    使用的是Yii自带的Grid,在使用checkbox希望可以把选中行的id值传到我想要的页面. 首先需要改变key值 $dataProvider->key = 'ID'; button: Htm ...

  4. Backbone学习记录(4)

    事件绑定  on()方法 调用格式:object.on(event, callback, [context])"change" — 当attributes变化时"chan ...

  5. P2667 超级质数

    https://www.luogu.org/problem/show?pid=2667 题目背景 背景就是描述,描述就是背景...... 题目描述 一个质数如果从个位开始,依次去掉一位数字,两位数字, ...

  6. spring boot 的redis 之初理解

    项目到末尾了快, 这几天安排我结合业务场景给项目加上redis 缓存, 我接到这个任务也是懵逼了一会儿: 问了一句让我自己先想办法,没办法硬着头皮查吧, 要不不得不说spring boot 还是好用, ...

  7. AJPFX浅谈关于Java程序员缺乏面向对象的基本功的问题

    为什么很多 Java 程序员会缺乏面向对象基本功?这得怪那些 Java 框架.现在 Java 的各种框架太发达.太傻瓜化了,导致很多程序员只需要按部就班.照着框架进行代码填空,基本已经丧失了 OOA ...

  8. css实现行内文字垂直居中

    之前本人一直使用浮动.相对定位.绝对定位和display:table等css的方法进行定位.网上得知flex可实现弹性布局,符合未来发展趋势,随尝试. 1:让盒子行内文字垂直居中,解决思路是讲文字的行 ...

  9. git diff查看修改,出现^M换行问题

    通过命令git diff查看修改,出现^M换行问题,如图: 解决: git config --global core.whitespace cr-at-eol 换行符的问题: 提交时转换为LF,检出时 ...

  10. Cognos添加维度

    1.打开后台cognos中的报表,创建查询主题 填写该维度的名称 以时间维度为例 从左边添加该维度的单位,修改名称(在Cognos前台显示),如果有逻辑在源里面修改下函数 以此类推.