拖拉后的再显示所有的DIV的坐标 位置,,,
或者。用COOKIE保存 都得。。不知道有没有哪个高手帮帮。本人对JS不是很会。
===========
什么意思,就是刷新页面后,还是在拖动后的位置??用cookie存储上次的位置?如果是可以参考下面代码
<!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>窗口模拟--Author:Vibo Email:[email protected]</title>
<style type="text/css">
<!--
body,td,th {
font-family: Arial, 宋体;
font-size: 12px;
}
.webWinFrame {
position: absolute;
left:15px;
top:15px;
padding: 3px;
background-color: #EEEEEE;
}
.webWin {
width: 300px;
border: 1px solid #80C65A;
background-color: #FFFFFF;
}
.webWin .wTitle{
line-height: 18px;
padding: 2px;
font-weight: bold;
cursor:move;
background-color: #DDF8CC;
white-space: nowrap;
overflow:hidden;
text-overflow:ellipsis
}
.webWin .wContent {
overflow:hidden;
}
.webWin .wResizeBox {
background-color: #80C65A;
height: 15px;
width: 5px;
position: absolute;
right: 5px;
bottom: 5px;
overflow:hidden;
cursor:se-resize;
}
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style>
</head>
<body onload="InitPos()" onunload="SavePos()">
<div class="webWinFrame" id="testWinA"><div class="webWin">
<div class="wTitle">TitleA-<a href="###" onclick="W_h(testWinA,400,400)">3333</a></div>
<div class="wContent">
<div style="width:300px;height:200px;padding:2px;">
此处显示新 Div 标签的内容此处显示新 Div 标签的内容<br>
此处显示新 Div 标签的内容此处显示新 Div 标签的内容<br>
此处显示新 Div 标签的内容<br>
</div>
</div>
<div></div></div></div>
<div class="webWinFrame" id="testWinB" style="top:110px;"><div class="webWin"><div class="wTitle">TitleB-<a href="###" onclick="del_div(0)">[X]</a></div><div class="wContent">此处显示新 Div 标签的内容
此处显示新 Div 标签的内容
</div><div ></div></div></div>
</body>
</html>
<script>
var MaxHeight=screen.availHeight-120,MaxWidth=screen.availWidth-20;//在屏幕范围内拖动,这里定义拖动范围的
window.$ = function(obj){return (document.getElementById)?document.getElementById(obj):(document.all)?document.all[obj]:obj}
window.isIE = window.Event?false:true;
window.getMouseCoords=function(e){return {x:isIE?e.clientX+Math.max(document.body.scrollLeft, document.documentElement.scrollLeft):e.pageX, y:isIE?e.clientY+Math.max(document.body.scrollTop, document.documentElement.scrollTop):e.pageY};}
window.vWinZIndex = 1;
function vDrag(o,ho,initArr){
ho=ho||o;
o.style.position="absolute";
if(!isIE){ho.firstChild.onmousedown=function(){return false;}}
ho.onmousedown=function(a){
o.style.zIndex = window.vWinZIndex;
window.vWinZIndex++;
var d=document;if(!a)a=window.event;
var x=a.layerX?a.layerX:a.offsetX,y=a.layerY?a.layerY:a.offsetY;
if(ho.setCapture)
ho.setCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove=function(a){
if(!a)a=window.event;
var mus=getMouseCoords(a)
if(!a.pageX)a.pageX=mus.x;
if(!a.pageY)a.pageY=mus.y;
var tx=a.pageX-x,ty=a.pageY-y;
if(initArr){
o.style.left=(tx<initArr[0]?initArr[0]:tx>initArr[2]?initArr[2]:tx)+"px";
o.style.top=(ty<initArr[1]?initArr[1]:ty>initArr[3]?initArr[3]:ty)+"px";
}else{
//===========这里限制拖动范围用的=========
if(tx<0) tx=0;
if(tx>MaxWidth-o.offsetWidth)tx=MaxWidth-o.offsetWidth;
if(ty<0)ty=0;
if(ty>MaxHeight-o.offsetHeight)ty=MaxHeight-o.offsetHeight;
//==========================================
o.style.left = tx+"px";
o.style.top = ty+"px";
}
};
d.onmouseup=function(){
if(ho.releaseCapture)
ho.releaseCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove=null;
d.onmouseup=null;
};
};
}
function createWebWindow(o,intW,intH,oldX,oldY){
o.style.zIndex = window.vWinZIndex;
//还原为原来的位置
if(oldX&&oldY)
{
o.style.left=oldX+"px";
o.style.top=oldY+"px";
}
window.vWinZIndex++;
var winSelf = o.childNodes[0];
var winTitle = o.childNodes[0].childNodes[0];
var winContent = o.childNodes[0].childNodes[1];
var winDbox = o.childNodes[0].childNodes[2];
var minW =150,minH = 20;
var _self = this;
var wX = winSelf.offsetWidth-winContent.offsetWidth;
var wH = winSelf.offsetHeight-winContent.offsetHeight;
winDbox.onmousedown = function(e)
{
o.style.zIndex = window.vWinZIndex;
window.vWinZIndex++;
var d=document;if(!e)e=window.event;
var x=e.layerX?e.layerX:e.offsetX,y=e.layerY?e.layerY:e.offsetY;
var MCD=window.getMouseCoords(e)
winSelf.startX=MCD.x;
winSelf.startY=MCD.y;
winSelf.startW=winSelf.offsetWidth;
winSelf.startH=winSelf.offsetHeight;
if(winDbox.setCapture)
winDbox.setCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove =function(e)
{
if(!e)e=window.event;
var mus=getMouseCoords(e)
var newW = (winSelf.startW +(mus.x-winSelf.startX));
var newH = (winSelf.startH +(mus.y-winSelf.startY))
resizeWin(newW,newH);
}
d.onmouseup=function()
{
if(winDbox.releaseCapture)
winDbox.releaseCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove=null;
d.onmouseup=null;
}
}
function resizeWin(newW,newH)
{
newW = newW < minW?minW:newW;
newH = newH < minH?minH:newH;
winSelf.style.width = newW+"px";
winSelf.style.height = newH+"px";
winTitle.style.width = isIE?newW+"px":(newW-4)+"px";
winContent.style.width = (newW-wX)+"px";
winContent.style.height = (newH-wH)+"px";
}
{
resizeWin(intW,intH);
vDrag(o,winTitle);
}
}
function W_h(name,w,h)
{
createWebWindow($(name),w,h);
}
//=================Cookie操作================
function SavePos()//====离开页面时使用cookie保存原来的位置
{
var d1=$("testWinA");
var d2=$("testWinB");
var data="";
//注意这里当未移动时,d1.style.left是无法获取到css设置的值的
if(isNaN(parseInt(d1.style.left)))
data+="0,0";
else
data+=parseInt(d1.style.left)+","+parseInt(d1.style.top);
data+="|";
if(isNaN(parseInt(d2.style.left)))
data+="0,0";
else
data+=parseInt(d2.style.left)+","+parseInt(d2.style.top);
setcookie("data",data);
}
function InitPos()//页面加载时根据cookie初始化位置
{
var data=getcookie("data");
if(data!="")//上次的数据
{
var ds=data.split("|");
var p=ds[0].split(",");
createWebWindow($("testWinA"),100,175,p[0],p[1]);
p=ds[1].split(",");
createWebWindow($("testWinB"),300,175,p[0],p[1]);
}
else//默认
{
createWebWindow($("testWinB"),300,100);
createWebWindow($("testWinA"),100,175);
}
}
function getcookie(name)
{
var cookief=false;
var start=0;
var end=0;
var cookiestr=document.cookie;
var i=0;
while(i<=cookiestr.length)
{
start=i;
end=start+name.length;
if(cookiestr.substring(start,end)==name)
{
cookief=true;
break;
}
i++;
}
if(cookief)
{
start=end+1;
end=cookiestr.length;
return unescape(cookiestr.substring(start,end));
}
return "";
}
function setcookie(name,value)
{
var exp=new Date();
exp.setYear(exp.getYear()+1);
document.cookie=name+"="+escape(value)+";expires="+exp.toGMTString();
}
</script>
或者。用COOKIE保存 都得。。不知道有没有哪个高手帮帮。本人对JS不是很会。
===========
什么意思,就是刷新页面后,还是在拖动后的位置??用cookie存储上次的位置?如果是可以参考下面代码
<!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>窗口模拟--Author:Vibo Email:[email protected]</title>
<style type="text/css">
<!--
body,td,th {
font-family: Arial, 宋体;
font-size: 12px;
}
.webWinFrame {
position: absolute;
left:15px;
top:15px;
padding: 3px;
background-color: #EEEEEE;
}
.webWin {
width: 300px;
border: 1px solid #80C65A;
background-color: #FFFFFF;
}
.webWin .wTitle{
line-height: 18px;
padding: 2px;
font-weight: bold;
cursor:move;
background-color: #DDF8CC;
white-space: nowrap;
overflow:hidden;
text-overflow:ellipsis
}
.webWin .wContent {
overflow:hidden;
}
.webWin .wResizeBox {
background-color: #80C65A;
height: 15px;
width: 5px;
position: absolute;
right: 5px;
bottom: 5px;
overflow:hidden;
cursor:se-resize;
}
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style>
</head>
<body onload="InitPos()" onunload="SavePos()">
<div class="webWinFrame" id="testWinA"><div class="webWin">
<div class="wTitle">TitleA-<a href="###" onclick="W_h(testWinA,400,400)">3333</a></div>
<div class="wContent">
<div style="width:300px;height:200px;padding:2px;">
此处显示新 Div 标签的内容此处显示新 Div 标签的内容<br>
此处显示新 Div 标签的内容此处显示新 Div 标签的内容<br>
此处显示新 Div 标签的内容<br>
</div>
</div>
<div></div></div></div>
<div class="webWinFrame" id="testWinB" style="top:110px;"><div class="webWin"><div class="wTitle">TitleB-<a href="###" onclick="del_div(0)">[X]</a></div><div class="wContent">此处显示新 Div 标签的内容
此处显示新 Div 标签的内容
</div><div ></div></div></div>
</body>
</html>
<script>
var MaxHeight=screen.availHeight-120,MaxWidth=screen.availWidth-20;//在屏幕范围内拖动,这里定义拖动范围的
window.$ = function(obj){return (document.getElementById)?document.getElementById(obj):(document.all)?document.all[obj]:obj}
window.isIE = window.Event?false:true;
window.getMouseCoords=function(e){return {x:isIE?e.clientX+Math.max(document.body.scrollLeft, document.documentElement.scrollLeft):e.pageX, y:isIE?e.clientY+Math.max(document.body.scrollTop, document.documentElement.scrollTop):e.pageY};}
window.vWinZIndex = 1;
function vDrag(o,ho,initArr){
ho=ho||o;
o.style.position="absolute";
if(!isIE){ho.firstChild.onmousedown=function(){return false;}}
ho.onmousedown=function(a){
o.style.zIndex = window.vWinZIndex;
window.vWinZIndex++;
var d=document;if(!a)a=window.event;
var x=a.layerX?a.layerX:a.offsetX,y=a.layerY?a.layerY:a.offsetY;
if(ho.setCapture)
ho.setCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove=function(a){
if(!a)a=window.event;
var mus=getMouseCoords(a)
if(!a.pageX)a.pageX=mus.x;
if(!a.pageY)a.pageY=mus.y;
var tx=a.pageX-x,ty=a.pageY-y;
if(initArr){
o.style.left=(tx<initArr[0]?initArr[0]:tx>initArr[2]?initArr[2]:tx)+"px";
o.style.top=(ty<initArr[1]?initArr[1]:ty>initArr[3]?initArr[3]:ty)+"px";
}else{
//===========这里限制拖动范围用的=========
if(tx<0) tx=0;
if(tx>MaxWidth-o.offsetWidth)tx=MaxWidth-o.offsetWidth;
if(ty<0)ty=0;
if(ty>MaxHeight-o.offsetHeight)ty=MaxHeight-o.offsetHeight;
//==========================================
o.style.left = tx+"px";
o.style.top = ty+"px";
}
};
d.onmouseup=function(){
if(ho.releaseCapture)
ho.releaseCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove=null;
d.onmouseup=null;
};
};
}
function createWebWindow(o,intW,intH,oldX,oldY){
o.style.zIndex = window.vWinZIndex;
//还原为原来的位置
if(oldX&&oldY)
{
o.style.left=oldX+"px";
o.style.top=oldY+"px";
}
window.vWinZIndex++;
var winSelf = o.childNodes[0];
var winTitle = o.childNodes[0].childNodes[0];
var winContent = o.childNodes[0].childNodes[1];
var winDbox = o.childNodes[0].childNodes[2];
var minW =150,minH = 20;
var _self = this;
var wX = winSelf.offsetWidth-winContent.offsetWidth;
var wH = winSelf.offsetHeight-winContent.offsetHeight;
winDbox.onmousedown = function(e)
{
o.style.zIndex = window.vWinZIndex;
window.vWinZIndex++;
var d=document;if(!e)e=window.event;
var x=e.layerX?e.layerX:e.offsetX,y=e.layerY?e.layerY:e.offsetY;
var MCD=window.getMouseCoords(e)
winSelf.startX=MCD.x;
winSelf.startY=MCD.y;
winSelf.startW=winSelf.offsetWidth;
winSelf.startH=winSelf.offsetHeight;
if(winDbox.setCapture)
winDbox.setCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove =function(e)
{
if(!e)e=window.event;
var mus=getMouseCoords(e)
var newW = (winSelf.startW +(mus.x-winSelf.startX));
var newH = (winSelf.startH +(mus.y-winSelf.startY))
resizeWin(newW,newH);
}
d.onmouseup=function()
{
if(winDbox.releaseCapture)
winDbox.releaseCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove=null;
d.onmouseup=null;
}
}
function resizeWin(newW,newH)
{
newW = newW < minW?minW:newW;
newH = newH < minH?minH:newH;
winSelf.style.width = newW+"px";
winSelf.style.height = newH+"px";
winTitle.style.width = isIE?newW+"px":(newW-4)+"px";
winContent.style.width = (newW-wX)+"px";
winContent.style.height = (newH-wH)+"px";
}
{
resizeWin(intW,intH);
vDrag(o,winTitle);
}
}
function W_h(name,w,h)
{
createWebWindow($(name),w,h);
}
//=================Cookie操作================
function SavePos()//====离开页面时使用cookie保存原来的位置
{
var d1=$("testWinA");
var d2=$("testWinB");
var data="";
//注意这里当未移动时,d1.style.left是无法获取到css设置的值的
if(isNaN(parseInt(d1.style.left)))
data+="0,0";
else
data+=parseInt(d1.style.left)+","+parseInt(d1.style.top);
data+="|";
if(isNaN(parseInt(d2.style.left)))
data+="0,0";
else
data+=parseInt(d2.style.left)+","+parseInt(d2.style.top);
setcookie("data",data);
}
function InitPos()//页面加载时根据cookie初始化位置
{
var data=getcookie("data");
if(data!="")//上次的数据
{
var ds=data.split("|");
var p=ds[0].split(",");
createWebWindow($("testWinA"),100,175,p[0],p[1]);
p=ds[1].split(",");
createWebWindow($("testWinB"),300,175,p[0],p[1]);
}
else//默认
{
createWebWindow($("testWinB"),300,100);
createWebWindow($("testWinA"),100,175);
}
}
function getcookie(name)
{
var cookief=false;
var start=0;
var end=0;
var cookiestr=document.cookie;
var i=0;
while(i<=cookiestr.length)
{
start=i;
end=start+name.length;
if(cookiestr.substring(start,end)==name)
{
cookief=true;
break;
}
i++;
}
if(cookief)
{
start=end+1;
end=cookiestr.length;
return unescape(cookiestr.substring(start,end));
}
return "";
}
function setcookie(name,value)
{
var exp=new Date();
exp.setYear(exp.getYear()+1);
document.cookie=name+"="+escape(value)+";expires="+exp.toGMTString();
}
</script>
可以提给大家来回答,
Meizz不一定有时间来回答你的问题,
有时间也不一定会回复跟他关系不大的问题.
就是.能不能再帮我做一下.恢复默认接扭.,,.
我在IE.册了.cookie.好像.还是和上一次一样.换一台机子.试了还是一样.我还以为.是你的机子问题.
还有.就是如果再能帮我做一个.接钮,可以显示.,,testWinB还有,testWinA的拖动的位置.就是Y,Z,X,
就是.testWinB移动到哪.的值...
剧烈韦大的谢谢..
.
对.那大家帮我回答..我给分..
高手都是很忙的.这偶知道.....
<span style="cursor:hand" onclick="ResetPos()"><b>恢复默认</b></span>
<script>
var Left=100;//不能超过距离左边100的位置
function ResetPos()//恢复默认
{
var a=$("testWinA");
var b=$("testWinB");
a.style.left="15px";//默认左边位置
a.style.top="15px";
b.style.left="15px";
b.style.top="15px";
}
//=======修改vDrag函数中的代码如下
//===========这里限制拖动范围用的=========
// if(tx<=Left) tx=Left;//超过左边位置定义时========加了这句=========
// if(tx>MaxWidth-o.offsetWidth)tx=MaxWidth-o.offsetWidth;
// if(ty<0)ty=0;
// if(ty>MaxHeight-o.offsetHeight)ty=MaxHeight-o.offsetHeight;
/====================
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>窗口模拟--Author:Vibo Email:[email protected]</title>
<style type="text/css">
<!--
body,td,th {
font-family: Arial, 宋体;
font-size: 12px;
}
.webWinFrame {
position: absolute;
left:15px;
top:15px;
padding: 3px;
background-color: #EEEEEE;
}
.webWin {
width: 300px;
border: 1px solid #80C65A;
background-color: #FFFFFF;
}
.webWin .wTitle{
line-height: 18px;
padding: 2px;
font-weight: bold;
cursor:move;
background-color: #DDF8CC;
white-space: nowrap;
overflow:hidden;
text-overflow:ellipsis
}
.webWin .wContent {
overflow:hidden;
}
.webWin .wResizeBox {
background-color: #80C65A;
height: 15px;
width: 5px;
position: absolute;
right: 5px;
bottom: 5px;
overflow:hidden;
cursor:se-resize;
}
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style>
</head>
<body onload="InitPos()" onunload="SavePos()">
<div class="webWinFrame" id="testWinA"><div class="webWin">
<div class="wTitle">TitleA-<a href="###" onclick="W_h(testWinA,400,400)">3333</a><span></span></div>
<div class="wContent">
<!---->
<div style="width:300px;height:200px;padding:2px;">
Div 标签的内容<br>
</div>
<!---->
</div>
<div></div></div></div>
<div class="webWinFrame" id="testWinB" style="top:110px;"><div class="webWin"><div class="wTitle">TitleB-<a href="###" onclick="del_div(0)">[X]</a><span></span></div><div class="wContent">
<!---->
此处显示新Div 标签的内容<br />
<!---->
</div><div ></div></div></div>
<span style="cursor:hand" onclick="ResetPos()"><b>恢复默认</b></span>
</body>
</html>
<script>
var MaxHeight=screen.availHeight-120,MaxWidth=screen.availWidth-20;
var Left=100;
window.$ = function(obj){return (document.getElementById)?document.getElementById(obj):(document.all)?document.all[obj]:obj}
window.isIE = window.Event?false:true;
window.getMouseCoords=function(e){return {x:isIE?e.clientX+Math.max(document.body.scrollLeft, document.documentElement.scrollLeft):e.pageX, y:isIE?e.clientY+Math.max(document.body.scrollTop, document.documentElement.scrollTop):e.pageY};}
window.vWinZIndex = 1;
function vDrag(o,ho,initArr){
ho=ho||o;
o.style.position="absolute";
if(!isIE){ho.firstChild.onmousedown=function(){return false;}}
ho.onmousedown=function(a){
o.style.zIndex = window.vWinZIndex;
window.vWinZIndex++;
var d=document;if(!a)a=window.event;
var x=a.layerX?a.layerX:a.offsetX,y=a.layerY?a.layerY:a.offsetY;
if(ho.setCapture)
ho.setCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove=function(a){
if(!a)a=window.event;
var mus=getMouseCoords(a)
if(!a.pageX)a.pageX=mus.x;
if(!a.pageY)a.pageY=mus.y;
var tx=a.pageX-x,ty=a.pageY-y;
if(initArr){
o.style.left=(tx<initArr[0]?initArr[0]:tx>initArr[2]?initArr[2]:tx)+"px";
o.style.top=(ty<initArr[1]?initArr[1]:ty>initArr[3]?initArr[3]:ty)+"px";
}else{
//===========这里限制拖动范围用的=========
if(tx<=Left) tx=Left;
if(tx>MaxWidth-o.offsetWidth)tx=MaxWidth-o.offsetWidth;
if(ty<0)ty=0;
if(ty>MaxHeight-o.offsetHeight)ty=MaxHeight-o.offsetHeight;
//==========================================
var PosSpan=o.getElementsByTagName("span")[0];//获取显示位置的span
PosSpan.innerHTML="("+tx+","+ty+","+o.style.zIndex+")";
o.style.left = tx+"px";
o.style.top = ty+"px";
}
};
d.onmouseup=function(){
if(ho.releaseCapture)
ho.releaseCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove=null;
d.onmouseup=null;
};
};
}
function createWebWindow(o,intW,intH,oldX,oldY){
o.style.zIndex = window.vWinZIndex;
var PosSpan=o.getElementsByTagName("span")[0];//获取显示位置的span
if(oldX&&oldY)
{
o.style.left=oldX+"px";
o.style.top=oldY+"px";
PosSpan.innerHTML="("+oldX+","+oldY+","+o.style.zIndex+")";
}
else
PosSpan.innerHTML="(15,15,"+o.style.zIndex+")";
window.vWinZIndex++;
var winSelf = o.childNodes[0];
var winTitle = o.childNodes[0].childNodes[0];
var winContent = o.childNodes[0].childNodes[1];
var winDbox = o.childNodes[0].childNodes[2];
var minW =150,minH = 20;
var _self = this;
var wX = winSelf.offsetWidth-winContent.offsetWidth;
var wH = winSelf.offsetHeight-winContent.offsetHeight;
winDbox.onmousedown = function(e)
{
o.style.zIndex = window.vWinZIndex;
window.vWinZIndex++;
var d=document;if(!e)e=window.event;
var x=e.layerX?e.layerX:e.offsetX,y=e.layerY?e.layerY:e.offsetY;
var MCD=window.getMouseCoords(e)
winSelf.startX=MCD.x;
winSelf.startY=MCD.y;
winSelf.startW=winSelf.offsetWidth;
winSelf.startH=winSelf.offsetHeight;
if(winDbox.setCapture)
winDbox.setCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove =function(e)
{
if(!e)e=window.event;
var mus=getMouseCoords(e)
var newW = (winSelf.startW +(mus.x-winSelf.startX));
var newH = (winSelf.startH +(mus.y-winSelf.startY))
resizeWin(newW,newH);
}
d.onmouseup=function()
{
if(winDbox.releaseCapture)
winDbox.releaseCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove=null;
d.onmouseup=null;
}
}
function resizeWin(newW,newH)
{
newW = newW < minW?minW:newW;
newH = newH < minH?minH:newH;
winSelf.style.width = newW+"px";
winSelf.style.height = newH+"px";
winTitle.style.width = isIE?newW+"px":(newW-4)+"px";
winContent.style.width = (newW-wX)+"px";
winContent.style.height = (newH-wH)+"px";
}
{
resizeWin(intW,intH);
vDrag(o,winTitle);
}
}function W_h(name,w,h)
{
createWebWindow($(name),w,h);
}function SavePos()
{
var d1=$("testWinA");
var d2=$("testWinB");
var data="";
if(isNaN(parseInt(d1.style.left)))
data+="0,0";
else
data+=parseInt(d1.style.left)+","+parseInt(d1.style.top);
data+="|";
if(isNaN(parseInt(d2.style.left)))
data+="0,0";
else
data+=parseInt(d2.style.left)+","+parseInt(d2.style.top);
setcookie("data",data);
}
function InitPos()
{
var data=getcookie("data");
if(data!="")
{
var ds=data.split("|");
var p=ds[0].split(",");
createWebWindow($("testWinA"),100,175,p[0],p[1]);
p=ds[1].split(",");
createWebWindow($("testWinB"),300,175,p[0],p[1]);
}
else
{
createWebWindow($("testWinB"),300,100);
createWebWindow($("testWinA"),100,175);
}
}
function getcookie(name)
{
var cookief=false;
var start=0;
var end=0;
var cookiestr=document.cookie;
var i=0;
while(i<=cookiestr.length)
{
start=i;
end=start+name.length;
if(cookiestr.substring(start,end)==name)
{
cookief=true;
break;
}
i++;
}
if(cookief)
{
start=end+1;
end=cookiestr.length;
return unescape(cookiestr.substring(start,end));
}
return "";
}
function setcookie(name,value)
{
var exp=new Date();
exp.setYear(exp.getYear()+1);
document.cookie=name+"="+escape(value)+";expires="+exp.toGMTString();
}
function ResetPos()
{
var a=$("testWinA");
var b=$("testWinB");
a.style.left="15px";
a.style.top="15px";
b.style.left="15px";
b.style.top="15px";
}
</script>
<!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>窗口模拟--Author:Vibo Email:[email protected]</title>
<style type="text/css">
<!--
body,td,th {
font-family: Arial, 宋体;
font-size: 12px;
}
.webWinFrame {
position: absolute;
left:15px;
top:15px;
padding: 3px;
background-color: #EEEEEE;
}
.webWin {
width: 300px;
border: 1px solid #80C65A;
background-color: #FFFFFF;
}
.webWin .wTitle{
line-height: 18px;
padding: 2px;
font-weight: bold;
cursor:move;
background-color: #DDF8CC;
/*display:inline-block;*/
white-space: nowrap;
overflow:hidden;
text-overflow:ellipsis
}
.webWin .wContent {
overflow:hidden;
}
.webWin .wResizeBox {
background-color: #80C65A;
height: 15px;
width: 5px;
position: absolute;
right: 5px;
bottom: 5px;
overflow:hidden;
cursor:se-resize;
}
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style>
</head>
<body onload="InitPos()" onunload="SavePos()">
<div class="webWinFrame" id="testWinA"><div class="webWin">
<div class="wTitle">TitleA-<a href="###" onclick="W_h(testWinA,400,400)">3333</a><span></span><span style="cursor:hand" onclick="Lock(this)" lock="false">[锁定]</span></div>
<div class="wContent">
<!---->
<div style="width:300px;height:200px;padding:2px;">
此处显示新 Div 标签的内容此处显示新 Div 标签的内容<br>
此处显示新 Div 标签的内容此处显示新 Div 标签的内容<br>
此处显示新 Div 标签的内容<br>
此处显示新 Div 标签的内容此处显示新 Div 标签的内容<br>
此处显示新 Div 标签的内容此处显示新 Div 标签的内容<br>
此处显示新 Div 标签的内容此处显示新 Div 标签的内容<br>
此处显示新 Div 标签的内容此处显示新 Div 标签的内容<br>
</div>
<!---->
</div>
<div></div></div></div>
<div class="webWinFrame" id="testWinB" style="top:110px;"><div class="webWin"><div class="wTitle">TitleB-<a href="###" onclick="del_div(0)">[X]</a><span></span><span style="cursor:hand" lock="false" onclick="Lock(this)">[锁定]</span></div><div class="wContent">
<!---->
此处显示新 Div 标签的内容<br />
此处显示新 Div 标签的内容<br />
此处显示新 Div 标签的内容<br />
<!---->
</div><div ></div></div></div>
<span style="cursor:hand" onclick="ResetPos()"><b>恢复默认</b></span>
</body>
</html>
var Left=100;//不能超过距离左边100的位置
window.$ = function(obj){return (document.getElementById)?document.getElementById(obj):(document.all)?document.all[obj]:obj}
window.isIE = window.Event?false:true;
window.getMouseCoords=function(e){return {x:isIE?e.clientX+Math.max(document.body.scrollLeft, document.documentElement.scrollLeft):e.pageX, y:isIE?e.clientY+Math.max(document.body.scrollTop, document.documentElement.scrollTop):e.pageY};}
window.vWinZIndex = 1;
function vDrag(o,ho,initArr){
ho=ho||o;
o.style.position="absolute";
if(!isIE){ho.firstChild.onmousedown=function(){return false;}}
ho.onmousedown=function(a){
o.style.zIndex = window.vWinZIndex;
window.vWinZIndex++;
var d=document;if(!a)a=window.event;
var x=a.layerX?a.layerX:a.offsetX,y=a.layerY?a.layerY:a.offsetY;
if(ho.setCapture)
ho.setCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove=function(a){
if(IsLock(o)) return;
if(!a)a=window.event;
var mus=getMouseCoords(a)
if(!a.pageX)a.pageX=mus.x;
if(!a.pageY)a.pageY=mus.y;
var tx=a.pageX-x,ty=a.pageY-y;
if(initArr){
o.style.left=(tx<initArr[0]?initArr[0]:tx>initArr[2]?initArr[2]:tx)+"px";
o.style.top=(ty<initArr[1]?initArr[1]:ty>initArr[3]?initArr[3]:ty)+"px";
}else{
//===========这里限制拖动范围用的=========
if(tx<=Left) tx=Left;//超过左边位置定义时
if(tx>MaxWidth-o.offsetWidth)tx=MaxWidth-o.offsetWidth;
if(ty<0)ty=0;
if(ty>MaxHeight-o.offsetHeight)ty=MaxHeight-o.offsetHeight;
//==========================================
var PosSpan=o.getElementsByTagName("span")[0];//获取显示位置的span
PosSpan.innerHTML="("+tx+","+ty+","+o.style.zIndex+")";
o.style.left = tx+"px";
o.style.top = ty+"px";
}
};
d.onmouseup=function(){
if(ho.releaseCapture)
ho.releaseCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove=null;
d.onmouseup=null;
};
};
}
function createWebWindow(o,intW,intH,oldX,oldY,lockState){
o.style.zIndex = window.vWinZIndex;
var PosSpan=o.getElementsByTagName("span")[0];//获取显示位置的span
//还原为原来的位置
if(oldX&&oldY)
{
o.style.left=oldX+"px";
o.style.top=oldY+"px";
PosSpan.innerHTML="("+oldX+","+oldY+","+o.style.zIndex+")";
//设置锁定状态
var spanlock=o.getElementsByTagName("span")[1];
spanlock.innerHTML=lockState=="false"?"[锁定]":"[解锁]";
spanlock.setAttribute("lock",lockState);
}
else
PosSpan.innerHTML="(15,15,"+o.style.zIndex+")";
window.vWinZIndex++;
var winSelf = o.childNodes[0];
var winTitle = o.childNodes[0].childNodes[0];
var winContent = o.childNodes[0].childNodes[1];
var winDbox = o.childNodes[0].childNodes[2];
var minW =150,minH = 20;
var _self = this;
//
var wX = winSelf.offsetWidth-winContent.offsetWidth;
var wH = winSelf.offsetHeight-winContent.offsetHeight;
//
winDbox.onmousedown = function(e)
{if(IsLock(o)) return;//被锁定返回
o.style.zIndex = window.vWinZIndex;
window.vWinZIndex++;
var d=document;if(!e)e=window.event;
var x=e.layerX?e.layerX:e.offsetX,y=e.layerY?e.layerY:e.offsetY;
var MCD=window.getMouseCoords(e)
winSelf.startX=MCD.x;
winSelf.startY=MCD.y;
winSelf.startW=winSelf.offsetWidth;
winSelf.startH=winSelf.offsetHeight;
//
if(winDbox.setCapture)
winDbox.setCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove =function(e)
{
if(!e)e=window.event;
var mus=getMouseCoords(e)
var newW = (winSelf.startW +(mus.x-winSelf.startX));
var newH = (winSelf.startH +(mus.y-winSelf.startY))
resizeWin(newW,newH);
}
d.onmouseup=function()
{
if(winDbox.releaseCapture)
winDbox.releaseCapture();
else if(window.captureEvents)
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
d.onmousemove=null;
d.onmouseup=null;
}
}
function resizeWin(newW,newH)
{
newW = newW < minW?minW:newW;
newH = newH < minH?minH:newH;
winSelf.style.width = newW+"px";
winSelf.style.height = newH+"px";
//
winTitle.style.width = isIE?newW+"px":(newW-4)+"px";
//
winContent.style.width = (newW-wX)+"px";
winContent.style.height = (newH-wH)+"px";
}
{
resizeWin(intW,intH);
vDrag(o,winTitle);
}
}function W_h(name,w,h)
{
createWebWindow($(name),w,h);
}
//=================Cookie操作================
function SavePos()//====离开页面时使用cookie保存原来的位置
{
var d1=$("testWinA");
var d2=$("testWinB");
var data="";
//注意这里当未移动时,d1.style.left是无法获取到css设置的值的
if(isNaN(parseInt(d1.style.left)))
data+="0,0";
else
data+=parseInt(d1.style.left)+","+parseInt(d1.style.top);
data+=","+d1.getElementsByTagName("span")[1].getAttribute("lock");//加上了锁定状态在cookie中;
data+="|";
if(isNaN(parseInt(d2.style.left)))
data+="0,0";
else
data+=parseInt(d2.style.left)+","+parseInt(d2.style.top);
data+=","+d2.getElementsByTagName("span")[1].getAttribute("lock");//加上了锁定状态在cookie中;
setcookie("data",data);
}
function InitPos()//页面加载时根据cookie初始化位置
{
var data=getcookie("data");
if(data!="")//上次的数据
{
var ds=data.split("|");
var p=ds[0].split(",");
createWebWindow($("testWinA"),150,175,p[0],p[1],p[2]);
p=ds[1].split(",");
createWebWindow($("testWinB"),300,175,p[0],p[1],p[2]);
}
else//默认
{
createWebWindow($("testWinB"),300,100);
createWebWindow($("testWinA"),150,175);
}
}
function getcookie(name)
{
var cookief=false;
var start=0;
var end=0;
var cookiestr=document.cookie;
var i=0;
while(i<=cookiestr.length)
{
start=i;
end=start+name.length;
if(cookiestr.substring(start,end)==name)
{
cookief=true;
break;
}
i++;
}
if(cookief)
{
start=end+1;
end=cookiestr.length;
return unescape(cookiestr.substring(start,end));
}
return "";
}
function setcookie(name,value)
{
var exp=new Date();
exp.setYear(exp.getYear()+1);
document.cookie=name+"="+escape(value)+";expires="+exp.toGMTString();//编码:escape();unescape 解码
}
function ResetPos()
{
var a=$("testWinA");
var b=$("testWinB");
a.style.left="15px";
a.style.top="15px";
b.style.left="15px";
b.style.top="15px";
}
function Lock(o)
{
if(o.getAttribute("lock")=="false")
{
o.innerHTML="[解锁]";
o.setAttribute("lock","true");
}
else
{
o.innerHTML="[锁定]";
o.setAttribute("lock","false")
}
}
function IsLock(o)
{
if(o.getElementsByTagName("span")[1].getAttribute("lock")=="true")
return true;
else
return false;
}
拉后的DIV坐标容易获得!