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

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

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

/**************************************************
* 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名稱)方法就可以應用了。
事實上,網(wǎng)上已經(jīng)有一個輕量級的dom-drag類庫(作者: Aaron Boodman),回頭看到自己寫的類庫,內牛滿面……,dom-drag類可以到http://boring.youngpup.net/projects/dom-drag/下載,代碼非常簡單,而且提供了很多易用的特性。并且網(wǎng)站上提供了非常詳細的例子。
這個類庫就像flash里面的startDrag方法,代碼精簡卻功能實用。你想讓某個組件能夠拖動,你可以調用 Drag.init( ) 方法。
init : function(o, oRoot, minX, maxX, minY, maxY, bSwapHorzRef, bSwapVertRef, fXMapper, fYMapper)
o :是想現(xiàn)實鼠標拖動的組件;
oRoot : 是o上層的組件,將隨o一起拖動;
minX, maxX, minY, maxY :設置鼠標拖動的范圍, 由下面的例子cropper可以看出,如果有oRoot,那范圍是由oRoot相對于頁面來說的;
bSwapHorzRef, bSwapVertRef :設置組件的優(yōu)先權;
fXMapper, fYMapper: 設置拖動的路徑

其中第三個例子:
示例鏈接:http://boring.youngpup.net/projects/dom-drag/ex3.html
可以實現(xiàn)對拖動范圍的限制,代碼如下:
復制代碼 代碼如下:

<!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個數(shù)字參數(shù)對應元素可以拖動的區(qū)域,左上和右下的x,y坐標。因此元素只能在(25,25),(25,200)的直線之間滑動,就想滾動條一樣。
這個類庫功能簡單,但如果結合其他功能,將可以做出像flash那么炫的效果。
演示代碼: http://demo.jb51.net/js/dom-drag/demo.html
代碼打包: http://www.fzitv.net/jiaoben/28492.html

相關文章

  • 關于axios返回空對象的問題解決

    關于axios返回空對象的問題解決

    這篇文章主要給大家介紹了關于axios返回空對象的問題解決方法,文中介紹的非常詳細,相信對大家學習或者使用axios具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-04-04
  • 淺析Javascript中雙等號(==)隱性轉換機制

    淺析Javascript中雙等號(==)隱性轉換機制

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

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

    做為一個javascript新手,為了程式的簡便,可能會在javascript中運用了大量的全局變量,雖然一時看來,問題解決了,而且也可能讓編碼變得更加的簡單。
    2010-12-12
  • 使用JS的input框實現(xiàn)音頻文件的上傳與播放功能

    使用JS的input框實現(xiàn)音頻文件的上傳與播放功能

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

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

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

    ajax如何實現(xiàn)頁面局部跳轉與結果返回

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

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

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

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

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

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

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

    用html5 js實現(xiàn)點擊一個按鈕達到瀏覽器全屏效果

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

最新評論

介休市| 策勒县| 延安市| 肇源县| 古田县| 苏州市| 长丰县| 葵青区| 龙岩市| 汪清县| 凤城市| 宜都市| 蓝田县| 成武县| 博野县| 双鸭山市| 历史| 成安县| 台北县| 新宾| 阜康市| 肥东县| 余姚市| 沽源县| 鄂托克前旗| 吉木乃县| 安庆市| 大宁县| 内江市| 通渭县| 东方市| 彩票| 扎兰屯市| 资中县| 什邡市| 浮梁县| 闵行区| 共和县| 六盘水市| 仁布县| 屏山县|