天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

這是個功能非常簡單的類,只實現了拖拽的功能,當然,代碼也因此保持了原始的簡潔,下面是這個類庫的代碼:
代碼
復制代碼 代碼如下:
/**************************************************
* Drag.js
* 作者:橡樹小屋 07.17.2010
* http://www.cnblogs.com/babyzone2004/
*用法:Drag.initDrag(id); id是標簽的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;
}
}

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

其中第三個例子:
示例鏈接:http://boring.youngpup.NET/projects/dom-drag/ex3.html
可以實現對拖動范圍的限制,代碼如下:
復制代碼 代碼如下:
<!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個數字參數對應元素可以拖動的區域,左上和右下的x,y坐標。因此元素只能在(25,25),(25,200)的直線之間滑動,就想滾動條一樣。
這個類庫功能簡單,但如果結合其他功能,將可以做出像flash那么炫的效果。
演示代碼: http://demo.jb51.NET/js/dom-drag/demo.html
代碼打包: http://www.jb51.NET/jiaoben/28492.html

JavaScript技術一個js拖拽的效果類和dom-drag.js淺析,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 龙广在线收听 | 717影院理论午夜伦不卡久久 | 穿着丝袜被男生强行啪啪 | 99精品欧美一区二区三区美图 | 亚洲一区精品在线 | 欧美伦理片第7页 | 免费A级毛片无码无遮挡内射 | 亚洲一区二区三不卡高清 | 国产69精品久久久久APP下载 | 给个男人都懂的网址2019 | 午夜DV内射一区二区 | 亚洲综合国产在不卡在线 | 久久久久综合网久久 | 韩国伦理片2018在线播放免费观看 | 羞羞答答的免费视频在线观看 | 国产跪地吃黄金喝圣水合集 | 老师洗澡让我吃她胸的视频 | 97亚洲狠狠色综合久久久久 | zxfuli午夜福利在线 | 亚洲妈妈精品一区二区三区 | 麻豆成人久久精品二区三区网站 | 高H各种PLAY全肉NP | 日本久久久WWW成人免费毛片丨 | 色婷婷狠狠97成为人免费 | 蜜柚免费视频高清观看在线 | 99久久精品6在线播放 | caoporen超碰在线视频 | 国产国产乱老熟女视频网站97 | 免费无码一区二区三区蜜桃大 | 桃花免费高清在线观看 | 97伦理97伦理2018最新 | 国产电影无码午夜在线播放 | 看了n遍舍不得删的黄文 | 耻辱诊察室1一4集动漫在线观看 | 中文字幕亚洲无线码高清不卡 | 久久综合给合久久狠狠狠… | 蜜桃TV成人网站免费打开 | 免费人成网站在线观看10分钟 | 午夜影院和视费x看 | 三级全黄a| 中文无码乱人伦中文视频播放 |