用javascript实现行拖动的方法
拖
在window.onload =函数(){
绑定事件
VaR AddEvent = document.addeventlistener功能(EL型,回调){
El.addEventListener(类型,回调,!1);
}函数(EL,类型,回调){
el.attachevent(+型,回调);
}
要确定支持 /样式
无功getstylename =(函数(){()
var前缀= { '、'串联','要','的WebKit的',' KHTML',O'};
var = reg_cap /({到})/克;
功能getstylename(CSS、EL){
EL = EL document.documentelement | |;
VaR的风格= el.style,测试;
对于(var i = 0,L = prefixes.length;i < L;i++){
测试=(前缀{我} + CSS)。更换(reg_cap,功能(0美元,1美元){
返回的1.touppercase();
});
如果(测试样式){
回归测试;
}
}
返回null;
}
返回getstylename;
});
无功userselect = getstylename(用户选择);
准确的风格
无功getstyle = document.defaultview功能(EL,风格){
返回document.defaultview.getcomputedstyle(EL,null)GetPropertyValue(的风格)。
}函数(EL,样式){
style= style.replace( / -( W)/ g,功能(1美元){
返回的1.touppercase();
});
返回EL。currentstyle {风格};
}
无功dragmanager = { {
y:0,
DragStart:功能(e){
E = E事件| |;
VAR处理= e.target e.srcelement | |;
如果(handler.nodename = TD){
处理程序= handler.parentnode;
dragmanager.handler =处理程序;
如果(!handler.getattribute(数据背景)){
handler.setattribute(数据背景
}
显示为运动状态
handler.style.backgroundcolor =# CCC;
handler.style.cursor =搬家;
dragmanager y = e.clienty;
如果(typeof userselect =字符串){
返回文档。文档元素}。风格{ userselect } =没有;
}
document.unselectable = ;
document.onselectstart =函数(){
返回false;
}
}
},
拖曳:功能(e){ / / MouseMove拖线
VAR处理= dragmanager.handler;
如果(处理程序){
E = E事件| |;
var y = e.clienty;
VaR下= y > dragmanager。Y; / /向下移动
VaR TR = document.elementfrompoint(e.clientx,e.clienty);
如果(TR tr.nodename = = TD){
TR = tr.parentnode
dragmanager Y = y;
如果(处理程序)!= TR){
tr.parentnode.insertbefore(处理程序,(下tr.nextsibling:TR));
}
};
}
},
DragEnd:函数(){
VAR处理= dragmanager.handler
如果(处理程序){
handler.style.backgroundcolor = handler.getattribute(数据背景);
handler.style.cursor =默认;
dragmanager.handler = null;
}
如果(typeof userselect =字符串){
返回文档。文档元素}。风格{ userselect } =文本;
}
document.unselectable = ;
document.onselectstart = null;
},
主:函数(EL){
AddEvent(EL,mouseDown
AddEvent(文件,MouseMove
AddEvent(文件,MouseUp
}
}
var el = document.getelementbyid(表);
DragManager.main(EL);
}
表{宽度:60%;border: 1px solid红;边界崩溃:崩溃;}
。td { border: 1px solid红;身高:20px;}
拖
1onedom.require
2twocontroljs
3threeheadjs
4fourlab.js
5five script.js美元
6sixnbl.js
希望本文能对大家的javascript程序设计有所帮助。