脚本div实现拖放功能(两种)


Posted in Javascript onFebruary 13, 2017

网页上有很多拖曳的操作,比如拖动树状列表,可拖曳的图片等。

1.原生拖放实现

<!doctype html>
<html lang="en">
<head>
 <meta charset="utf-8">
 <title>jQuery UI Autocomplete - Default functionality</title>
 <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="external nofollow" >
 <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
 <script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
 <style>
 .drag{
 width: 200px;
 height: 200px;
 background-color: red;
 position: absolute;
 left:0;
 top:0;
 }
 </style>
 <script>
 $(function() {
 var _move = false;//判断目标对象书否处于移动状态
 var _x, _y;//鼠标离控件左上角的相对x.y坐标
 $('.drag').click(function(event) {
 }).mousedown(function(e) {//当按下鼠标左键时
 _move = true;//标记移动为true,开始移动
 _x = e.pageX - parseInt($('.drag').css('left'));//得到左上角的x的位置
 _y = e.pageY - parseInt($('.drag').css('top'));//得到左上角的y的位置
 $('.drag').fadeTo('20', 0.5);//单击后开始拖动
 
 });
 
 $(document).mousemove(function(e) {//监听鼠标移动
 if(_move) {
 var x = e.pageX - _x;//计算移动的距离
 var y = e.pageY - _y;
 $('.drag').css({top:y, left:x});
 }
 }).mouseup(function() {
 _move = false;
 $('.drag').fadeTo('fast', 1);
 });
 });
 </script>
</head>
<body>
 <div class="drag"></div>
</body>
</html>

2 jQuery UI draggable实现拖放

自行实现拖曳方法比较负责,jQuery UI提供了可拖曳的事件,允许用户非常简单的为一个div添加拖曳效果。

jQuery UI主要通过draggable事件来实现拖曳功能。

<script>
 $(document).ready(function(e) {
  $('.drag').draggable({cursor: 'move'});
  $('#enable').click(function(e) {
 $('.drag').draggable('enable');
  });
  $('#disable').click(function(event) {
 $('.drag').draggable('disable');
  });
  $('#deatroy').click(function(event) {
 $('.drag').draggable('destroy');
  });
 })
 </script>
</head>
<body>
 <button id="enable">enable</button>
 <button id="disable">disable</button>
 <button id="destroy">destroy</button>
 <div class="drag">
 <p>请拖动我!</p> 
 </div>
</body>

关于draggable的API可以参考draggalbe API

draggable 实例

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
jquery ajax 同步异步的执行 return值不能取得的解决方案
Jan 08 Javascript
javascript:文字不间断向左移动的实例代码
Aug 08 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
Jul 17 Javascript
js中实现多态采用和继承类似的方法
Aug 22 Javascript
JQ实现新浪游戏首页幻灯片
Jul 29 Javascript
Javascript实现可旋转的圆圈实例代码
Aug 04 Javascript
深入解析JavaScript的闭包机制
Oct 20 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
Jun 16 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
May 11 Javascript
mac中利用NVM管理不同node版本的方法详解
Nov 08 Javascript
原生js调用json方法总结
Feb 22 Javascript
在Vue中使用Echarts实例图的方法实例
Oct 10 Javascript
bootstrap table 数据表格行内修改的实现代码
Feb 13 #Javascript
判断横屏竖屏(三种)
Feb 13 #Javascript
详解javascript立即执行函数表达式IIFE
Feb 13 #Javascript
jQuery实现大图轮播
Feb 13 #Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
Feb 13 #Javascript
你真的了解BOM中的history对象吗
Feb 13 #Javascript
微信小程序-获得用户输入内容
Feb 13 #Javascript
You might like
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
2011/09/09 PHP
php去除重复字的实现代码
2011/09/16 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
php微信公众号开发之简答题
2018/10/20 PHP
Jquery Select操作方法集合脚本之家特别版
2010/05/17 Javascript
js或者jquery判断图片是否加载完成实现代码
2013/03/20 Javascript
你可能不知道的JavaScript的new Function()方法
2014/04/17 Javascript
jquery 实现input输入什么div图层显示什么
2014/06/15 Javascript
JavaScript实现简单图片翻转的方法
2015/04/17 Javascript
javascript+css3 实现动态按钮菜单特效
2016/02/06 Javascript
用原生JS对AJAX做简单封装的实例代码
2016/07/13 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
2016/09/18 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
2017/01/12 Javascript
js输入框使用正则表达式校验输入内容的实例
2017/02/12 Javascript
JQuery中Ajax的操作完整例子
2017/03/07 Javascript
Bootstrap模态框(Modal)实现过渡效果
2017/03/17 Javascript
JS实现隔行换色的表格排序
2017/03/27 Javascript
详解RequireJS按需加载样式文件
2017/04/12 Javascript
jquery 获取索引值在一定范围的列表方法
2018/01/25 jQuery
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
webpack中的模式(mode)使用详解
2020/02/20 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
深入理解Python单元测试unittest的使用示例
2017/11/18 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
用于ETL的Python数据转换工具详解
2020/07/21 Python
如何基于Python按行合并两个txt
2020/11/03 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
selenium如何定位span元素的实现
2021/01/13 Python
自立自强的名人事例
2014/02/10 职场文书
单位承诺书格式
2014/05/21 职场文书
2014年售票员工作总结
2014/11/19 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
为什么 Nginx 比 Apache 更牛逼
2021/03/31 Servers
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
2021/06/13 Python