一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

一個(gè)js拖拽的效果類和dom-drag.js淺析

這是個(gè)功能非常簡(jiǎn)單的類,只實(shí)現(xiàn)了拖拽的功能,當(dāng)然,代碼也因此保持了原始的簡(jiǎn)潔,下面是這個(gè)類庫(kù)的代碼:
代碼
復(fù)制代碼 代碼如下:
/**************************************************
* Drag.js
* 作者:橡樹小屋 07.17.2010
* http://www.cnblogs.com/babyzone2004/
*用法:Drag.initDrag(id); id是標(biāo)簽的id名稱
**************************************************/
var Drag={
dragObject:null,
mouseOffset:null,
initDrag:function(item){
if(item){
this.item=document.getElementById(item);
this.item.onmousedown=function(evnt){
document.onmousemove=Drag.mouseMove;
document.onmouseup=Drag.mouseUp;
Drag.dragObject=this;
Drag.mouseOffset=Drag.getMouseOffset(this,evnt);
return false;
}
}
},
mousePoint:function(x,y){
this.x=x;
this.y=y;
},
mousePosition:function (evnt){
evnt=evnt||window.event;
var x=parseInt(evnt.clientX);
var y=parseInt(evnt.clientY);
return new Drag.mousePoint(x,y);
},
getMouseOffset:function(target,evnt){
var mousePos=Drag.mousePosition(evnt);
var x=mousePos.x-target.offsetLeft;
var y=mousePos.y-target.offsetTop;
return new Drag.mousePoint(x,y);
},
mouseUp:function (evnt){
Drag.dragObject=null;
document.onmousemove = null;
document.onmouseup = null;
},
mouseMove:function(evnt){
if(!Drag.dragObject) return;
var mousePos=Drag.mousePosition(evnt);
Drag.dragObject.style.position="absolute";
Drag.dragObject.style.top=mousePos.y-Drag.mouseOffset.y+"px";
Drag.dragObject.style.left=mousePos.x-Drag.mouseOffset.x+"px";
return false;
}
}

由于代碼不是很復(fù)雜,所以就不詳細(xì)展開說了。有需要的可以直接下載使用,導(dǎo)入后用Drag.initDrag(id名稱)方法就可以應(yīng)用了。
事實(shí)上,網(wǎng)上已經(jīng)有一個(gè)輕量級(jí)的dom-drag類庫(kù)(作者: Aaron Boodman),回頭看到自己寫的類庫(kù),內(nèi)牛滿面……,dom-drag類可以到http://boring.youngpup.NET/projects/dom-drag/下載,代碼非常簡(jiǎn)單,而且提供了很多易用的特性。并且網(wǎng)站上提供了非常詳細(xì)的例子。
這個(gè)類庫(kù)就像flash里面的startDrag方法,代碼精簡(jiǎn)卻功能實(shí)用。你想讓某個(gè)組件能夠拖動(dòng),你可以調(diào)用 Drag.init( ) 方法。
init : function(o, oRoot, minX, maxX, minY, maxY, bSwapHorzRef, bSwapVertRef, fXMapper, fYMapper)
o :是想現(xiàn)實(shí)鼠標(biāo)拖動(dòng)的組件;
oRoot : 是o上層的組件,將隨o一起拖動(dòng);
minX, maxX, minY, maxY :設(shè)置鼠標(biāo)拖動(dòng)的范圍, 由下面的例子cropper可以看出,如果有oRoot,那范圍是由oRoot相對(duì)于頁面來說的;
bSwapHorzRef, bSwapVertRef :設(shè)置組件的優(yōu)先權(quán);
fXMapper, fYMapper: 設(shè)置拖動(dòng)的路徑

其中第三個(gè)例子:
示例鏈接:http://boring.youngpup.NET/projects/dom-drag/ex3.html
可以實(shí)現(xiàn)對(duì)拖動(dòng)范圍的限制,代碼如下:
復(fù)制代碼 代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<script language="Javascript" src="dom-drag.js"></script>
<style type="text/css">
#thumb {
position:absolute;
height:50px;
width:12px;
background-color:#eee;
border:1px outset #eee;
}
</style>
</head>
<body>
<div id="thumb" style="left:25px; top:25px;"></div>
<script language="Javascript">
var aThumb = document.getElementById("thumb");
Drag.init(aThumb, ff;">null, 25, 25, 25, 200);
</script>
</body>
</html>

<script language="Javascript">
var aThumb = document.getElementById("thumb");
Drag.init(aThumb, null, 25, 25, 25, 200);
</script>
init里面的4個(gè)數(shù)字參數(shù)對(duì)應(yīng)元素可以拖動(dòng)的區(qū)域,左上和右下的x,y坐標(biāo)。因此元素只能在(25,25),(25,200)的直線之間滑動(dòng),就想滾動(dòng)條一樣。
這個(gè)類庫(kù)功能簡(jiǎn)單,但如果結(jié)合其他功能,將可以做出像flash那么炫的效果。
演示代碼: http://demo.jb51.NET/js/dom-drag/demo.html
代碼打包: http://www.jb51.NET/jiaoben/28492.html

JavaScript技術(shù)一個(gè)js拖拽的效果類和dom-drag.js淺析,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久成年人视频 | 麻豆国产91 | 欧美性与交视频在线观看 | 免费成人午夜视频 | 久久视热这只是精品222 | 久久亚洲精品国产精品婷婷 | 国产免费一区二区三区 | 成人福利在线观看免费视频 | 亚洲精品成人在线 | 亚洲小视频在线观看 | 九九成人免费视频 | 好吊精品 | 一区二区三区在线免费看 | 亚洲一二三区久久五月天婷婷 | 九九大香尹人视频免费 | 久久影院精品 | 日本乱人伦片中文三区 | 亚洲第一页在线观看 | 欧美激情午夜 | 日韩在线播放中文字幕 | 欧美综合网站 | 在线伊人网 | 黄色片视频网站 | 黄黄的网站在线观看 | 日韩精品一级毛片 | 91madou麻豆| 日本免费一区二区三区看片 | 免费精品美女久久久久久久久久 | 自拍偷拍2019 | 韩国一大片a毛片女同 | 久久久这里只有精品加勒比 | 视频一区二区三区免费观看 | 香蕉碰碰人人a久久动漫精品 | 在线永久免费观看黄网站 | 91精品国产福利在线观看 | 亚洲综合第一页 | 久久综合亚洲 | 国内自拍第1页 | 一道精品视频一区二区三区图片 | 最新国产在线视频 | 亚洲一区中文字幕 |