最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2010年07月17日 19:02:21   作者:  
最近完成了一個(gè)Drag類(lèi),可以實(shí)現(xiàn)指定對(duì)象的拖拽效果。
這是個(gè)功能非常簡(jiǎn)單的類(lèi),只實(shí)現(xiàn)了拖拽的功能,當(dāng)然,代碼也因此保持了原始的簡(jiǎn)潔,下面是這個(gè)類(lèi)庫(kù)的代碼:
代碼
復(fù)制代碼 代碼如下:

/**************************************************
* Drag.js
* 作者:橡樹(shù)小屋 07.17.2010
* http://www.cnblogs.com/babyzone2004/
*用法:Drag.initDrag(id); id是標(biāo)簽的id名稱(chēng)
**************************************************/
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ì)展開(kāi)說(shuō)了。有需要的可以直接下載使用,導(dǎo)入后用Drag.initDrag(id名稱(chēng))方法就可以應(yīng)用了。
事實(shí)上,網(wǎng)上已經(jīng)有一個(gè)輕量級(jí)的dom-drag類(lèi)庫(kù)(作者: Aaron Boodman),回頭看到自己寫(xiě)的類(lèi)庫(kù),內(nèi)牛滿(mǎn)面……,dom-drag類(lèi)可以到http://boring.youngpup.net/projects/dom-drag/下載,代碼非常簡(jiǎn)單,而且提供了很多易用的特性。并且網(wǎng)站上提供了非常詳細(xì)的例子。
這個(gè)類(lèi)庫(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ì)于頁(yè)面來(lái)說(shuō)的;
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)的直線(xiàn)之間滑動(dòng),就想滾動(dòng)條一樣。
這個(gè)類(lèi)庫(kù)功能簡(jiǎn)單,但如果結(jié)合其他功能,將可以做出像flash那么炫的效果。
演示代碼: http://demo.jb51.net/js/dom-drag/demo.html
代碼打包: http://m.fzitv.net/jiaoben/28492.html

相關(guān)文章

  • 關(guān)于axios返回空對(duì)象的問(wèn)題解決

    關(guān)于axios返回空對(duì)象的問(wèn)題解決

    這篇文章主要給大家介紹了關(guān)于axios返回空對(duì)象的問(wèn)題解決方法,文中介紹的非常詳細(xì),相信對(duì)大家學(xué)習(xí)或者使用axios具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-04-04
  • 淺析Javascript中雙等號(hào)(==)隱性轉(zhuǎn)換機(jī)制

    淺析Javascript中雙等號(hào)(==)隱性轉(zhuǎn)換機(jī)制

    這篇文章給大家詳細(xì)介紹了javascript中雙等號(hào)(==)隱性轉(zhuǎn)換機(jī)制,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-10-10
  • javascript中運(yùn)用閉包和自執(zhí)行函數(shù)解決大量的全局變量問(wèn)題

    javascript中運(yùn)用閉包和自執(zhí)行函數(shù)解決大量的全局變量問(wèn)題

    做為一個(gè)javascript新手,為了程式的簡(jiǎn)便,可能會(huì)在javascript中運(yùn)用了大量的全局變量,雖然一時(shí)看來(lái),問(wèn)題解決了,而且也可能讓編碼變得更加的簡(jiǎn)單。
    2010-12-12
  • 使用JS的input框?qū)崿F(xiàn)音頻文件的上傳與播放功能

    使用JS的input框?qū)崿F(xiàn)音頻文件的上傳與播放功能

    最近的系統(tǒng)加的功能是越來(lái)越多了,前兩天老板又讓實(shí)現(xiàn)一個(gè)錄音上傳的功能,可以點(diǎn)擊播放按鈕打開(kāi)音頻播放器,點(diǎn)擊暫停按鈕暫定播放,想了想決定使用input框的file類(lèi)型加上接收的參數(shù)為audio來(lái)實(shí)現(xiàn)此功能,感興趣的朋友可以參考下
    2024-06-06
  • JS實(shí)現(xiàn)點(diǎn)擊發(fā)送驗(yàn)證碼 xx秒后重新發(fā)送功能

    JS實(shí)現(xiàn)點(diǎn)擊發(fā)送驗(yàn)證碼 xx秒后重新發(fā)送功能

    在一些注冊(cè)類(lèi)的網(wǎng)站,經(jīng)常遇到這樣的需求,點(diǎn)擊發(fā)送驗(yàn)證碼,xx秒后重新發(fā)送,這樣的功能怎么實(shí)現(xiàn)呢,接下來(lái)通過(guò)本文給大家分享js點(diǎn)擊發(fā)送驗(yàn)證碼 xx秒后重新發(fā)送功能,需要的朋友參考下吧
    2019-07-07
  • ajax如何實(shí)現(xiàn)頁(yè)面局部跳轉(zhuǎn)與結(jié)果返回

    ajax如何實(shí)現(xiàn)頁(yè)面局部跳轉(zhuǎn)與結(jié)果返回

    AJAX即“Asynchronous Javascript And XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁(yè)應(yīng)用的網(wǎng)頁(yè)開(kāi)發(fā)技術(shù),通過(guò)在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,AJAX 可以使網(wǎng)頁(yè)實(shí)現(xiàn)異步更新,本篇文章給大家介紹ajax如何實(shí)現(xiàn)頁(yè)面局部跳轉(zhuǎn)與結(jié)果返回,感興趣的朋友一起來(lái)學(xué)習(xí)
    2015-08-08
  • js實(shí)現(xiàn)簡(jiǎn)單模態(tài)窗口,背景灰顯

    js實(shí)現(xiàn)簡(jiǎn)單模態(tài)窗口,背景灰顯

    昨天中午做項(xiàng)目需要一個(gè)模態(tài)窗口,想起上一個(gè)公司的項(xiàng)目經(jīng)理曾經(jīng)做過(guò)一個(gè)比較牛的模態(tài)窗口,至今沒(méi)用搞清楚實(shí)現(xiàn)原理,平時(shí)也沒(méi)有時(shí)間去分析,試著自己做了一個(gè),用了一天的時(shí)間終于完成了,給大家一起分享, 也希望高手多提意見(jiàn)。第一次在博客園上發(fā)文章,挺高興的。
    2008-11-11
  • js和jquery使按鈕失效為不可用狀態(tài)的方法

    js和jquery使按鈕失效為不可用狀態(tài)的方法

    js和jquery如何使按鈕失效,很簡(jiǎn)單,只要設(shè)置disabled屬性為true即為不可用狀態(tài)即可,下面有個(gè)簡(jiǎn)單的示例,大家可以參考下
    2014-01-01
  • iphone safari不支持position fixed的解決方法

    iphone safari不支持position fixed的解決方法

    最近一直在做移動(dòng)web開(kāi)發(fā),開(kāi)發(fā)過(guò)程中遇到了許多問(wèn)題,mobile safari不支持position: fixed就是一件很頭疼的事情
    2012-05-05
  • 用html5 js實(shí)現(xiàn)點(diǎn)擊一個(gè)按鈕達(dá)到瀏覽器全屏效果

    用html5 js實(shí)現(xiàn)點(diǎn)擊一個(gè)按鈕達(dá)到瀏覽器全屏效果

    點(diǎn)擊一個(gè)按鈕要實(shí)現(xiàn)按F11全屏的效果。 在HTML5中,W3C制定了關(guān)于全屏的API,就可以實(shí)現(xiàn)全屏幕的效果
    2014-05-05

最新評(píng)論

杭州市| 绥棱县| 巴中市| 辽源市| 青阳县| 垦利县| 涞水县| 黄冈市| 南丹县| 万安县| 水富县| 东乌珠穆沁旗| 滕州市| 司法| 绥化市| 深水埗区| 沁水县| 清原| 石渠县| 屏南县| 南京市| 滦平县| 万载县| 墨江| 绥宁县| 济源市| 黔江区| 柳河县| 遵义市| 龙游县| 杂多县| 沐川县| 班玛县| 两当县| 台北市| 石台县| 深泽县| 绥德县| 台北县| 洛浦县| 渑池县|