H5的draggable属性和jqueryUI.sortable
拖放
拖放是一种常见的特性,即抓取对象以后拖到另一个位置。
一、HTML5 新特性
在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。
| Event | On Event Handler | 描述 |
|---|---|---|
drag |
ondrag |
Fired when an element or text selection is being dragged.被拖动时触发一个元素或文本选择 |
dragend |
ondragend |
Fired when a drag operation is being ended (for example, by releasing a mouse button or hitting the escape key). (See Finishing a Drag.) |
dragenter |
ondragenter |
Fired when a dragged element or text selection enters a valid drop target. (See Specifying Drop Targets.) |
dragexit |
ondragexit |
Fired when an element is no longer the drag operation's immediate selection target. |
dragleave |
ondragleave |
Fired when a dragged element or text selection leaves a valid drop target. |
dragover |
ondragover |
Fired when an element or text selection is being dragged over a valid drop target (every few hundred milliseconds). |
dragstart |
ondragstart |
Fired when the user starts dragging an element or text selection. (See Starting a Drag Operation.) |
drop |
ondrop |
Fired when an element or text selection is dropped on a valid drop target. (See Performing a Drop.) |
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<style>
#div1{height: 150px;border: 1px solid #000;}
</style>
<script type="text/javascript">
/*
1、dataTransfer对象是用于保存数据的 和 取出数据
2、preventDefault() 来避免浏览器对数据的默认处理
3、appendChild 方法 追加到元素内
*/
function allowDrop(ev)
{
console.log('over')
// preventDefault() 来避免浏览器对数据的默认处理
ev.preventDefault();
} function dragstart(ev)
{
console.log('dragstart')
// The DataTransfer object is used to hold the data that is being dragged during a drag and drop operation. dataTransfer对象是用于保存数据的
ev.dataTransfer.setData("Text",ev.target.id);
} function drop(ev)
{
console.log('into')
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
// appendChild 方法 追加到元素内
ev.target.appendChild(document.getElementById(data));
} </script>
</head>
<body>
<!--
ondrop: 被拖动时触发一个元素或文本选择,元素释放时执行
ondragover: 被拖动时覆盖在元素上时 执行
-->
<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<!--
draggable="true" 开启拖拽属性
ondragstart 开始拖拽的元素时执行
-->
<img id="drag1" src="./css/a.png" draggable="true" ondragstart="dragstart(event)" width="336" height="69" /> </body>
</html>
二、JQueryUI.sortable
通过监控鼠标移动,修改position样式
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Sortable - Connect lists</title>
<link rel="stylesheet" href="css/jquery-ui.css">
<link rel="stylesheet" href="css/style.css">
<style>
#sortable1, #sortable2 {
border: 1px solid #eee;
width: 142px;
min-height: 20px;
list-style-type: none;
margin: 0;
padding: 5px 0 0 0;
float: left;
margin-right: 10px;
}
#sortable1 li, #sortable2 li {
margin: 0 5px 5px 5px;
padding: 5px;
font-size: 1.2em;
width: 120px;
}
</style>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$( function() {
$( "#sortable1" ).sortable({
connectWith: ".connectedSortable"
})
$( "#sortable2" ).sortable({
connectWith: ".connectedSortable"
}) } );
</script>
</head>
<body> <ul id="sortable1" class="connectedSortable">
<li class="ui-state-default">Item 1</li>
<li class="ui-state-default">Item 2</li>
<li class="ui-state-default">Item 3</li>
<li class="ui-state-default">Item 4</li>
<li class="ui-state-default">Item 5</li>
</ul> <ul id="sortable2" class="connectedSortable">
<li class="ui-state-highlight">Item 1</li>
<li class="ui-state-highlight">Item 2</li>
<li class="ui-state-highlight">Item 3</li>
<li class="ui-state-highlight">Item 4</li>
<li class="ui-state-highlight">Item 5</li>
</ul> </body>
</html>
$(".choose_chart").sortable({ //sortable化 dom
axis:'x',
cursor: "move",
items :"li", //只是li可以拖动
opacity: 0.6, //拖动时,透明度为0.6
revert: false, //释放时,增加动画
over : function(event, ui){ //点击
console.log(0)
Field.chooseID=event.toElement.id;
if($(".borderBlue").length>0){
// if($("#report_type").val()==0){
gs.getItemDataToChart()
// }
}
isOff = true;
},
out:function(event,ui){console.log(1)},//移动
beforeStop:function(event,ui){console.log(2)},//停止
update:function(event,ui){console.log(3)},//更换
stop:function(event,ui){ //结束
console.log(4)
// gs.chartIsEmpty();
if(Field.isAll){
$(".add_chart").append(addChartFunc[Field.chooseID]);
}else{
$("#alert2").dialog("open");
$("#alert2").html("曲线基本信息必须填写");
}
$(".choose_item").html(chooseChartStr)
},
http://www.w3school.com.cn/html5/html_5_draganddrop.asp
http://api.jqueryui.com/sortable/
H5的draggable属性和jqueryUI.sortable的更多相关文章
- jquery-ui sortable 使用实例
jquery-ui sortable 使用实例 最近公司需要做任务看板,需要拖拽效果.点击查看效果.由于网站是基于vue的技术栈,最开始找了一个现成的vue封装的拖拽组件:Vue.Draggable, ...
- JQUERY 拖拽 draggable droppable resizable selectable sortable
今天用了jq ui的拖动碰撞功能,好不容易看到有详细的API解说,记录如下: <script language="JavaScript" type="text/ ...
- jqueryui sortable拖拽后保存位置
jqueryUI sortable 可以用来进行页面拖拽布局,然而有一个小问题就是拖拽后如何保存状态. 工作中遇到了这个情况,遍把这个问题记了下来,具体思路是: 利用拖拽stop后利用 var a ...
- html5 的draggable属性使用<转载收藏>
在HTML5中,已经支持在浏览器与其他应用程序之间的数据互相拖动,同时也大大简化了有关于拖放方面的代码. 实现拖放的步骤 在HTML5中要想实现拖放操作,至少要经过两个步骤: 将想要拖放的对象元素的d ...
- jquery-ui sortable 排序
https://blog.csdn.net/u013066244/article/details/51954198 <link ref="stylesheet" href ...
- draggable属性设置元素是否可拖动。
设置标签属性draggable="true"将一个标签内的元素拖动到另外一个标签进行显示: <!DOCTYPE HTML> <html> <head& ...
- jquery-ui sortable 在拖动换位置时改变元素的大小导致占位与实际不一致
使用jquery ui sortable时 需求是在拖动的时候要隐藏一部分元素,然后按照隐藏后的元素高度换位, 解决方案是修改源码jquery-ui.js, _mouseStart方法中开头增加 if ...
- H5利用pattern属性和oninvalid属性验证表单
HTML代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...
- 什么是CSS盒模型及利用CSS对HTML元素进行定位的实现(含h5/css3新增属性)
大家好,很高兴又跟大家见面了!本周更新博主将给大家带来更精彩的HTML5技术分享,通过本周的学习,可实现大部分的网页制作.以下为本次更新内容. 第四章 css盒模型 <!DOCTYPE html ...
随机推荐
- Topcoder 658 650 point
Topcoder 658 div2 500 加强版 不过给了<=20,暴力肯定不行. 然后想DP方程,先二分可能需要的最大次数mid; 然后根据 mid 构造 DP方程. 假设x[i]需要 x个 ...
- Spring Cloud(8):Sleuth和Zipkin的使用
场景: 某大型电商网站基于微服务架构,服务模块有几十个. 某天,测试人员报告该网站响应速度过慢.排除了网络问题之后,发现很难进一步去排除故障. 那么:如何对微服务的链路进行监控呢? Sleuth: 一 ...
- 使用SpringMVC @Async异步执行方法的笔记 (转载)
原文:http://blog.csdn.net/yuwenruli/article/details/8514393 测试代码: @RunWith(SpringJUnit4ClassRunner.cla ...
- 基于 HTML5 WebGL 的挖掘机 3D 可视化应用
前言 在工业互联网以及物联网的影响下,人们对于机械的管理,机械的可视化,机械的操作可视化提出了更高的要求.如何在一个系统中完整的显示机械的运行情况,机械的运行轨迹,或者机械的机械动作显得尤为的重要,因 ...
- poj 3468 A Simple Problem with Integers(线段树、延迟更新)
A Simple Problem with Integers Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 74705 ...
- 【APUE】关于信号的一些常用函数
kill和raise函数 #include <signal.h> int kill(pid_t pid,int signo); int raise(int signo);//两个函数返回值 ...
- VM虚拟机ping不通局域网其他主机的解决办法
1 我的笔记本的无线网卡是自动获取IP,并且是通过无线网卡上网. 2 我的有线网卡是通过自己设定IP跟局域网的其他机器连通.当前设定的IP为172.16.17.2 3我需要连接的局域网另一个主 ...
- UI 07 _ 导航视图控制器 与 属性传值
首先, 先创建三个VC. 完毕点击按钮, 进入下一页, 并可以返回. 要先把导航视图控制器创建出来. 在AppDelegate.m 文件里代码例如以下: #import "AppDelega ...
- sql跟踪及tkprof使用
简述 在oracle数据库中,awr是关于数据库系统总体的负载情况和运行情况的报告.而当系统负载都显示正常,而client运行某些动作响应非常慢,或者某些终端连接的会话运行缓慢或异常时,就须要用到会话 ...
- The sandbox is not sync with the Podfile.lock
github下载的Demo,很多时候使用到CocoaPods,有的时候因为依赖关系或者版本问题不能编译运行. 出现 以下错误 The sandbox is not sync with the Podf ...