JS實(shí)現(xiàn)的自定義網(wǎng)頁(yè)拖動(dòng)類(lèi)
本文實(shí)例講述了JS實(shí)現(xiàn)的自定義網(wǎng)頁(yè)拖動(dòng)類(lèi)。分享給大家供大家參考,具體如下:
先來(lái)看運(yùn)行效果截圖如下:

在線(xiàn)演示地址如下:
http://demo.jb51.net/js/2015/js-zdy-web-drug-pic-style-codes/
具體代碼如下:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>自寫(xiě)的拖動(dòng)類(lèi)……</title>
<script type="text/javascript">
var d=document;//給document對(duì)象一個(gè)通用的事件偵聽(tīng)方法
d.addListener=function(e,f,b){
this.attachEvent?this.attachEvent('on'+e,f):this.addEventListener(e,f,b);
}
d.removeListener=function(e,f,b){
this.detachEvent?this.detachEvent('on'+e,f):this.removeEventListener(e,f,b);
}
function $(){//接收一個(gè)id參數(shù),返回帶有startDrag方法的對(duì)象
var o=document.getElementById(arguments[0]);
o.addListener=function(e,f,b){
this.attachEvent?this.attachEvent('on'+e,f):this.addEventListener(e,f,b);
}
o.removeListener=function(e,f,b){
this.detachEvent?this.detachEvent('on'+e,f):this.removeEventListener(e,f,b);
}
o.startDrag=function(obj){//參數(shù)obj默認(rèn)為o本身,可以傳其它參數(shù)以確定要移動(dòng)的對(duì)象
var obj=obj?obj:o;
var sx,sy;
o.style.cursor="move";
o.addListener("mousedown",function(e){
e||event;
if(e.button==1||e.button==0){
sx=e.clientX-obj.offsetLeft;sy=e.clientY-obj.offsetTop;
d.addListener("mousemove",move,false);
d.addListener("mouseup",stopDrag,false);
}
},false);
var stopDrag=function(){
d.removeListener("mousemove",move,false);
d.removeListener("mouseup",stopDrag,false);
}
var move=function(e){
e||event;
window.getSelection ? window.getSelection().removeAllRanges() :
document.selection.empty();
if(e.preventDefault)e.preventDefault();//這兩句便是解決firefox拖動(dòng)問(wèn)題的.
with (obj.style){
position="absolute"
left=e.clientX-sx+"px";
top=e.clientY-sy+"px";
}
}
}
return o;
}
window.onload=function(){$("ok").startDrag($("os"))}//本例中拖動(dòng)ok元素,移動(dòng)其父元素
</script>
<style type="text/css">
*{margin:0;padding:0}
#ok{width:215px;height:170px;background:url(images/sample1.gif)}
#os{width:400px;height:300px;background:#09f;left:300px}
#os2{width:400px;height:300px;background:#f90;}
</style>
</head>
<body>
<div id="os"><p id="ok"></p></div>
<div id="os2"></div>
</body>
</html>
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- JS實(shí)現(xiàn)超簡(jiǎn)單的鼠標(biāo)拖動(dòng)效果
- JS響應(yīng)鼠標(biāo)點(diǎn)擊實(shí)現(xiàn)兩個(gè)滑塊區(qū)間拖動(dòng)效果
- JS實(shí)現(xiàn)左右拖動(dòng)改變內(nèi)容顯示區(qū)域大小的方法
- js實(shí)現(xiàn)div拖動(dòng)動(dòng)畫(huà)運(yùn)行軌跡效果代碼分享
- avalon js實(shí)現(xiàn)仿微博拖動(dòng)圖片排序
- JS實(shí)現(xiàn)彈出浮動(dòng)窗口(支持鼠標(biāo)拖動(dòng)和關(guān)閉)實(shí)例詳解
- JS實(shí)現(xiàn)動(dòng)態(tài)移動(dòng)層及拖動(dòng)浮層關(guān)閉的方法
- JS實(shí)現(xiàn)可縮放、拖動(dòng)、關(guān)閉和最小化的浮動(dòng)窗口完整實(shí)例
- js用拖動(dòng)滑塊來(lái)控制圖片大小的方法
- Js可拖拽放大的層拖動(dòng)特效實(shí)現(xiàn)方法
- JS+CSS實(shí)現(xiàn)可拖動(dòng)的彈出提示框
- js實(shí)現(xiàn)圖片拖動(dòng)改變順序附圖
相關(guān)文章
JavaScript中使用stopPropagation函數(shù)停止事件傳播例子
這篇文章主要介紹了JavaScript中使用stopPropagation函數(shù)停止事件傳播例子,即阻止事件冒泡的一個(gè)方法,需要的朋友可以參考下2014-08-08
mpvue 頁(yè)面預(yù)加載新增preLoad生命周期的兩種方式
這篇文章主要介紹了mpvue 頁(yè)面預(yù)加載新增preLoad生命周期的兩種方式,本文重點(diǎn)給大家講解了第一種方式,需要的朋友可以參考下2019-10-10
JavaScript 實(shí)現(xiàn)輪播圖特效的示例
這篇文章主要介紹了JavaScript 實(shí)現(xiàn)輪播圖特效,幫助大家更好的制作網(wǎng)頁(yè),完成需求,感興趣的朋友可以了解下2020-11-11
JavaScript中blob對(duì)象和file對(duì)象的區(qū)別及相互轉(zhuǎn)換實(shí)例
在JavaScript中,File和Blob是Web?API提供的兩個(gè)重要對(duì)象,用于處理文件和二進(jìn)制數(shù)據(jù),這篇文章主要介紹了JavaScript中blob對(duì)象和file對(duì)象的區(qū)別及相互轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下2025-04-04
javascript自定義in_array()函數(shù)實(shí)現(xiàn)方法
這篇文章主要介紹了javascript自定義in_array()函數(shù)實(shí)現(xiàn)方法,涉及javascript數(shù)組的遍歷與查找相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08
JavaScript實(shí)現(xiàn)選項(xiàng)卡效果的分析及步驟
這篇文章主要給大家介紹了關(guān)于JavaScript實(shí)現(xiàn)選項(xiàng)卡效果的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用JavaScript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
JS定時(shí)刷新頁(yè)面及跳轉(zhuǎn)頁(yè)面的方法
這篇文章介紹了JS定時(shí)刷新頁(yè)面及跳轉(zhuǎn)頁(yè)面的方法,有需要的朋友可以參考一下2013-07-07

