一个JavaScript自由拖拽类介绍

基本拖拽:

1 new Dragdrop({
2     target 拖拽元素 HTMLElemnt 必选
3     bridge   指定鼠标按下哪个元素时开始拖拽,实现模态对话框时用到
4     dragable 是否可拖拽   (true)默认
5     dragX true/false false水平方向不可拖拽 (true)默认
6     dragY    true/false false垂直方向不可拖拽 (true)默认
7     area [minX,maxX,minY,maxY] 指定拖拽范围 默认任意拖动
8     callback 拖拽过程中的回调函数
9 });

拖拽最有技术含量的就是这段了:伯爵娱乐城

1 if(el.setCapture){ //IE
2     E.on(el, "losecapture", mouseup);
3     el.setCapture();
4     e.cancelBubble = true;
5 }else if(window.captureEvents){ //标准DOM
6     e.stopPropagation();
7     E.on(window, "blur", mouseup);
8     e.preventDefault();
9 }

这个效果没有使用JQuery,纯原生JavaScript实现,可以参考下。拖动效果平滑,自然,CPU性能没有明显起伏。

具体的拖拽了可以查看本页源代码获得,这里就不贴出来了。

时间: 2024-10-09 18:28:36

一个JavaScript自由拖拽类介绍的相关文章

JavaScript实现拖拽元素对齐到网格(每次移动固定距离)

这几天在做一个拖拽元素的附加功能,就是对齐到网格,实际上就是确定好元素的初始位置,然后拖拽元素时,每次移动固定的距离.让元素都可以在网格内对齐.先上效果图,然后在详细说明一下细节问题 做了一个gif图,可以看到,每次元素的移动都是按照最小单位距离移动的.且每次元素都是对齐到网格的. 先根据demo说明一下思路和细节,后面会给出demo代码. 1. 确定元素的每次移动的最小单位(demo中为10px和10px),也就是每次水平或垂直的位移量都是10px.铺上一层网格背景是为了帮助我们更好的看到效果

Android高级控件(六)——自定义ListView高仿一个QQ可拖拽列表的实现

Android高级控件(六)--自定义ListView高仿一个QQ可拖拽列表的实现 我们做一些好友列表或者商品列表的时候,居多的需求可能就是需要列表拖拽了,而我们选择了ListView,也是因为使用ListView太久远了,导致对他已经有浓厚的感情了,我们之前也是写过几篇关于ListView的博文 Android实训案例(三)--实现时间轴效果的ListView,加入本地存储,实现恋爱日记的效果! Android高级控件(一)--ListView绑定CheckBox实现全选,增加和删除等功能 A

Functions类,一个Javascript的函数加法类,将两个函数加起来,顺序执行

以下是类的代码: 1 var Functions = { 2 oFunctions: null, 3 add: function (oFunc, oNewFunc) { 4 var oNew = function () { 5 oFunc(); 6 oNewFunc(); 7 }; 8 return oNew; 9 } 10 }; 以下是测试代码: 1 function one() { 2 alert(1); 3 } 4 5 function two() { 6 alert(2); 7 } 8

Javascript面向对象拖拽

function Drag(id) { var _this=this; this.disX=0; this.disY=0; this.oDiv=document.getElementById(id); this.oDiv.onmousedown=function(e) { _this.fnDown(e); } } Drag.prototype.fnDown=function(e) { var _this=this; var e=e||event; this.disX=e.pageX-this.o

【原创】js实现一个可随意拖拽排序的菜单导航栏

1.想做这个效果的原因主要是用在UC上看新闻发现他们的导航菜单很有趣.无聊的时候在哪划着玩了很久.所以就干脆自己写一个.原效果如下 2.整体效果如下,在已推荐和未添加里面每个小方块可以触摸移动位置互换.未添加和已添加里面的小方块位置可以拖放. 3.结构分析.整体结构用红线框标出.可以分为三个部分.关注底部拖拽部分.一个div里面嵌套两个div.定位关系如图.本次教程之作一个拖拽框 1.好了,基本情况已经分析清楚先实现页面样式. <div class="wrap"> <

自己写一个jqery的拖拽插件

说实话,jQuery比原生的js好用多了,本来想用原生写的,也写出来的,只是,感觉不像插件,所以用jQuery实现了一版. 实现的功能:可以指定拖拽的边界,在拖拽过程中,可以触发几个自定义事件 先说明一下我写的插件的原则: 1.常量分离出来,放在$.zUI.插件中 2.插件的主体执行函数命名为$.zUI.插件.fn 3.销毁函数命名为$.zUI.插件.unfn 这些规范,主要是为了以后写其他插件时,放在一起,精简代码用的,以后可能还会增加其他规则,以写出一个骨架来. 拖拽的原理其实比较简单,就是

JavaScript实现拖拽预览,AJAX小文件上传

本地上传,提前预览(图片.视频) 1.html中div标签预览显示.button标签触发上传事件. <div id="drop_area" style="border:3px dashed silver;width:200px; height:200px">将图片拖拽到此</div> <button onclick="xhr2()">ajax上传</button> 2.禁止浏览器打开文件行为 doc

Javascript学习------拖拽效果

<!DOCTYPE html> <html> <head> <title>js拖拽</title> <style> * { margin: 0px; padding: 0px; } .drafting { width: 450px; height: 350px; overflow: hidden; position: absolute; z-index: 1; margin: 0px; box-shadow: 0px 0px 5px

Javascript:简单拖拽效果的实现

核心代码: /* *完成一个拖拽事件由三大事件组成: *1:onmousedown:选择元素 *2:onmousemove:移动元素 *3:onmouseup:释放元素 */ function drag(obj){ obj.onmousedown=function(ev){ var ev=ev || event; var disX=ev.clientX-this.offsetLeft; var disY=ev.clientY-this.offsetTop; //IE下选中文字后移动时,文字跟着移