javascript之鼠标拖动位置互换效果代码
2007-11-24 00:00
716 查看
鼠标拖动,位置互换效果,主要用于div,提高用户体验等方面
div.box{
position:relative;
padding:5px;
background-color:#000;
width:300px;
height:300px;
overflow:hidden;
}
div.box div.item{
float:left;
width:90px;
height:90px;
background-color:#ccc;
margin:5px;
position:relative;
cursor:pointer;
}
div.mask{
width:90px;
height:90px;
background-color:#f00;
opacity:0.8;
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=80);
position:absolute;
visibility:hidden;
top:20px;
left:20px;
z-index:10;
}
var darg = {
target : null,
ox : 0,
oy : 0
};
var box = document.createElement("div");
box.className = "box";
var mask = document.createElement("div");
mask.className = "mask";
box.appendChild(mask);
for(var i = 0; i < 9; i ++){
var item = document.createElement("div");
item.className = "item";
item.appendChild(document.createTextNode(i + 1));
item.onmousedown = function(){
var e = arguments[0] || window.event;
var o = e.target || e.srcElement;
darg.target = o;
mask.style["top"] = o.offsetTop + "px";
mask.style["left"] = o.offsetLeft + "px";
mask.style["visibility"] = "visible";
darg.ox = e.clientX - mask.offsetLeft;
darg.oy = e.clientY - mask.offsetTop;
}
box.appendChild(item);
}
document.body.appendChild(box);
function getItem(x,y){
x = x - box.offsetLeft;
y = y - box.offsetTop;
var o = box.childNodes[(3 - parseInt((box.offsetWidth - x)/100) + (2 - parseInt((box.offsetHeight - y)/100)) * 3)];
var n = darg.target.nextSibling;
var on = o.nextSibling;
box.insertBefore(o,n);
box.insertBefore(darg.target,on);
}
document.onmousemove = function(){
if(darg.target != null && darg.target.nodeType == 1){
var e = arguments[0] || window.event;
mask.style["left"] = e.clientX - darg.ox + "px";
mask.style["top"] = e.clientY - darg.oy + "px";
}
}
box.onmouseup = function(){
if(darg.target != null && darg.target.nodeType == 1){
var e = arguments[0] || window.event;
var o = e.target || e.srcElement;
getItem(e.clientX,e.clientY);
darg.target = null;
}
}
document.onmouseup = function(){
darg.target = null;
mask.style["visibility"] = "hidden";
}
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
div.box{
position:relative;
padding:5px;
background-color:#000;
width:300px;
height:300px;
overflow:hidden;
}
div.box div.item{
float:left;
width:90px;
height:90px;
background-color:#ccc;
margin:5px;
position:relative;
cursor:pointer;
}
div.mask{
width:90px;
height:90px;
background-color:#f00;
opacity:0.8;
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=80);
position:absolute;
visibility:hidden;
top:20px;
left:20px;
z-index:10;
}
var darg = {
target : null,
ox : 0,
oy : 0
};
var box = document.createElement("div");
box.className = "box";
var mask = document.createElement("div");
mask.className = "mask";
box.appendChild(mask);
for(var i = 0; i < 9; i ++){
var item = document.createElement("div");
item.className = "item";
item.appendChild(document.createTextNode(i + 1));
item.onmousedown = function(){
var e = arguments[0] || window.event;
var o = e.target || e.srcElement;
darg.target = o;
mask.style["top"] = o.offsetTop + "px";
mask.style["left"] = o.offsetLeft + "px";
mask.style["visibility"] = "visible";
darg.ox = e.clientX - mask.offsetLeft;
darg.oy = e.clientY - mask.offsetTop;
}
box.appendChild(item);
}
document.body.appendChild(box);
function getItem(x,y){
x = x - box.offsetLeft;
y = y - box.offsetTop;
var o = box.childNodes[(3 - parseInt((box.offsetWidth - x)/100) + (2 - parseInt((box.offsetHeight - y)/100)) * 3)];
var n = darg.target.nextSibling;
var on = o.nextSibling;
box.insertBefore(o,n);
box.insertBefore(darg.target,on);
}
document.onmousemove = function(){
if(darg.target != null && darg.target.nodeType == 1){
var e = arguments[0] || window.event;
mask.style["left"] = e.clientX - darg.ox + "px";
mask.style["top"] = e.clientY - darg.oy + "px";
}
}
box.onmouseup = function(){
if(darg.target != null && darg.target.nodeType == 1){
var e = arguments[0] || window.event;
var o = e.target || e.srcElement;
getItem(e.clientX,e.clientY);
darg.target = null;
}
}
document.onmouseup = function(){
darg.target = null;
mask.style["visibility"] = "hidden";
}
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
相关文章推荐
- javascript之鼠标拖动位置互换效果代码
- javascript之可拖动的iframe效果代码
- ajax拖动层,保存层位置,这段代码是从网络人扒拉下来的(非XAJAX),使用类库prototype.js,感觉效果非常好
- javascript实现拖动层效果代码(符合标准且兼容IE,chrome,firefox)
- 最精简的JavaScript实现鼠标拖动效果的方法
- Javascript实现的类似Google的Div拖动效果代码
- Javascript 鼠标移动上去 滑块跟随效果代码分享
- Js无刷新添加新层,拖动DIV层可互换位置的JavaScript实现
- Javascript拖动效果函数代码
- javascript实现的鼠标链接提示效果生成器代码
- javascript获取鼠标位置部分的实例代码(兼容IE,FF)
- javascript获取鼠标位置部分的实例代码(兼容IE,FF)
- Javascript 鼠标移动上去 滑块跟随效果代码分享
- 基于jquery的鼠标拖动效果代码
- javascript实现拖动层效果代码(许愿墙)
- 最精简的JavaScript实现鼠标拖动效果的方法
- javascript 事件处理、鼠标拖动效果实现方法详解
- 比较精简的Javascript拖动效果函数代码
- Javascript在IE或Firefox下获取鼠标位置的代码