> var actionObj = new Array(); var bar; var isIE,isNS; function Init() { //获取浏览器版本 if(navigator.appName.toLowerCase().indexOf("microsoft") != -1 && navigator.appVersion.indexOf("6.0")) { isIE = true; } else if(navigator.appName.toLowerCase().indexOf("netscape") != -1 && navigator.appVersion.toLowerCase().indexOf("5.0") != -1) { isNS = true; } else { alert("[Global.js][Init()]请使用IE6.0或FireFox浏览器浏览本页!"); //Glob.isIE = true; } if(isIE) { document.onmousedown = function(){clearSel();}; } else if(isNS) { document.body.setAttribute("onmousedown","clearSel();"); } //创建拖动点 bar = document.createElement("div"); bar.id = "bar"; bar.style.width = "20px"; bar.style.height = "20px"; bar.style.position = "absolute"; bar.style.zIndex = 10000; bar.style.display = "none"; if(isIE) { bar.style.backgroundColor = "#ffffff"; bar.style.filter = "alpha(opacity=0)"; } else if(isNS) { bar.style.backgroundImage = "url(../images/alpha.gif)"; } bar.style.cursor = "move"; document.body.appendChild(bar); if(isIE) { bar.onmousedown = function() { beginMove(event); } } if(isNS) { bar.setAttribute("onmousedown","beginMove(event)"); } } //为键盘移动做准备 function prepareMove(mvObj,e) { //清理上一个选中 clearSel(); var obj = mvObj; obj.style.borderWidth = "1px"; obj.style.borderStyle = "dashed"; obj.style.borderColor = "#666666"; obj.style.left = parseInt(obj.style.left) - 1 + "px"; obj.style.top = parseInt(obj.style.top) - 1 + "px"; actionObj[actionObj.length] = obj; //设置拖动点 bar.style.display = "block"; bar.style.width = mvObj.style.width == "" ? mvObj.width + "px" : mvObj.style.width; bar.style.height = mvObj.style.height == "" ? mvObj.height + "px" : mvObj.style.height; bar.style.left = parseInt(mvObj.style.left) + 1 + "px"; bar.style.top = parseInt(mvObj.style.top) + 1 + "px"; if (e.stopPropagation) e.stopPropagation( ); else e.cancelBubble = true; if (e.preventDefault) e.preventDefault( ); else e.returnValue = false; } //为鼠标移动做准备 function beginMove(e) { var mvObj = getAc(); if(mvObj == null)return; var mouseStartX = e.clientX; var mouseStartY = e.clientY; mvObj.sLeft = parseInt(mvObj.style.left); mvObj.sTop = parseInt(mvObj.style.top); // alert(mvObj.Left); // alert(mvObj.Top); if (e.stopPropagation) e.stopPropagation( ); else e.cancelBubble = true; if (e.preventDefault) e.preventDefault( ); else e.returnValue = false; if (document.addEventListener) { document.addEventListener("mousemove", moveHandler, true); document.addEventListener("mouseup", upHandler, true); } else if (document.attachEvent) { document.attachEvent("onmousemove", moveHandler); document.attachEvent("onmouseup", upHandler); } function moveHandler() { var mouseChangeX = e.clientX - mouseStartX; var mouseChangeY = e.clientY - mouseStartY; mvObj.Left = mvObj.sLeft + mouseChangeX; mvObj.Left = mvObj.Left > 0 ? mvObj.Left : 0; mvObj.Top = mvObj.sTop + mouseChangeY; mvObj.Top = mvObj.Top > 0 ? mvObj.Top : 0; mvObj.style.left = mvObj.Left + "px"; mvObj.style.top = mvObj.Top + "px"; } function upHandler() { if (document.removeEventListener) { document.removeEventListener("mouseup", upHandler, true); document.removeEventListener("mousemove", moveHandler, true); } else if (document.detachEvent) { document.detachEvent("onmouseup", upHandler); document.detachEvent("onmousemove", moveHandler); } bar.style.display = "block"; bar.style.width = mvObj.style.width == "" ? mvObj.width + "px" : mvObj.style.width; bar.style.height = mvObj.style.height == "" ? mvObj.height + "px" : mvObj.style.height; bar.style.left = parseInt(mvObj.style.left) + 1 + "px"; bar.style.top = parseInt(mvObj.style.top) + 1 + "px"; } } function keyAction(e) { var acOp = getAc(); if(acOp == null)return; switch(e.keyCode) { case 37: acOp.style.left = parseInt(acOp.style.left) - 1 + "px"; break; case 38: acOp.style.top = parseInt(acOp.style.top) - 1 + "px"; break; case 39: acOp.style.left = parseInt(acOp.style.left) + 1 + "px"; break; case 40: acOp.style.top = parseInt(acOp.style.top) + 1 + "px"; break; } } function clearSel() { var acOp = getAc(); if(acOp == null)return; acOp.style.borderWidth = "0px"; acOp.style.left = parseInt(acOp.style.left) + 1 + "px"; acOp.style.top = parseInt(acOp.style.top) + 1 + "px"; actionObj.length -= 1; //设置拖动点 bar.style.display = "none"; } function getAc() { if(actionObj.length > 0) return actionObj[actionObj.length - 1]; else return null; } |