最小化就是改变div的大小和位置.
恢复则是恢复它的大小和位置.
建议你定义两个样式,一个是最小时的一个是常态的,这样你只用更换样式即可.
最小化
div.className="min"
恢复
div.className="normal"
恢复则是恢复它的大小和位置.
建议你定义两个样式,一个是最小时的一个是常态的,这样你只用更换样式即可.
最小化
div.className="min"
恢复
div.className="normal"
解决方案 »
- 关于highstock插件的问题
- 急急,在JS里如果设置元素的CSS,生成一些元素
- 回复checkbox有没有onChange事件
- 正则小问题
- 问个关于多行的正则
- 对struts javascript熟的兄弟进来看一下, 简单问题
- 怎样才能使标题栏动态显示?
- 页面跳转不成功,帮帮看看
- 请帮忙看看这个js函数数组为什么只能赋值第一个值?
- 我想做一个下载页面,页面上有几个联结,点击后应该出现一个提示框,询问用户打开还是下载。应该怎么写这个href?
- 急!这段javascript代码在ie下运行正常,在firefox下不兼容
- 请问高手:父窗口执行子frame的全局函数,与子frame自己执行该函数结果不一样。
图表的显示和隐藏 是什么意思? 建议你定义两个样式,一个是最小时的一个是常态的,这样你只用更换样式即可.
还是有一些问题的。 最小化的时候 我需要知道页面的大小,以及宽度。在几个div最小化时候,我还要考虑排布的问题。
function min(obj)
{
var win = obj.parentNode.parentNode;
var sha = win.nextSibling;
var tit = obj.parentNode;
var msg = tit.nextSibling;
var flg = msg.style.display=="none";
if(flg)
{
win.style.height = parseInt(msg.style.height) + parseInt(tit.style.height) + 2*2;
sha.style.height = win.style.height;
msg.style.display = "block";
obj.innerHTML = "0";
}
else
{
win.style.height = parseInt(tit.style.height) + 2*2;
sha.style.height = win.style.height;
obj.innerHTML = "2";
msg.style.display = "none";
}
}
//关闭;
function cls(obj)
{ var win = obj.parentNode.parentNode;
var sha = win.nextSibling;
win.style.visibility = "hidden";
sha.style.visibility = "hidden";
}
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title> 网页特效 ¦Linkweb.cn/Js ¦---页面内的超级酷浮动窗口 </title>
<style type='text/css'>
<!--
a:visited{text-decoration:none;color:slategray;}
a:hover{text-decoration:underline;color:slategray;}
a:link{text-decoration:none;color:slategray;}
-->
</style>
<script language=JScript>
<!--
//可以打包为js文件;
var x0=0,y0=0,x1=0,y1=0;
var offx=6,offy=6;
var moveable=false;
var hover='orange',normal='slategray';//color;
var index=10000;//z-index;
//开始拖动;
function startDrag(obj)
{
if(event.button==1)
{
//锁定标题栏;
obj.setCapture();
//定义对象;
var win = obj.parentNode;
var sha = win.nextSibling;
//记录鼠标和层位置;
x0 = event.clientX;
y0 = event.clientY;
x1 = parseInt(win.style.left);
y1 = parseInt(win.style.top);
//记录颜色;
normal = obj.style.backgroundColor;
//改变风格;
obj.style.backgroundColor = hover;
win.style.borderColor = hover;
obj.nextSibling.style.color = hover;
sha.style.left = x1 + offx;
sha.style.top = y1 + offy;
moveable = true;
}
}
//拖动;
function drag(obj)
{
if(moveable)
{
var win = obj.parentNode;
var sha = win.nextSibling;
win.style.left = x1 + event.clientX - x0;
win.style.top = y1 + event.clientY - y0;
sha.style.left = parseInt(win.style.left) + offx;
sha.style.top = parseInt(win.style.top) + offy;
}
}
//停止拖动;
function stopDrag(obj)
{
if(moveable)
{
var win = obj.parentNode;
var sha = win.nextSibling;
var msg = obj.nextSibling;
win.style.borderColor = normal;
obj.style.backgroundColor = normal;
msg.style.color = normal;
win.style.left = x1 + event.clientX - x0;
win.style.top = y1 + event.clientY - y0;
sha.style.left = parseInt(win.style.left) + offx;
sha.style.top = parseInt(win.style.top) + offy;
obj.releaseCapture();
moveable = false;
}
}
//获得焦点;
function getFocus(obj)
{
if(obj.style.zIndex!=index)
{
index = index + 2;
var idx = index;
obj.style.zIndex=idx;
obj.nextSibling.style.zIndex=idx-1;
}
}
//最小化;
function min(obj)
{
var win = obj.parentNode.parentNode;
var sha = win.nextSibling;
var tit = obj.parentNode;
var msg = tit.nextSibling;
var flg = msg.style.display=="none";
if(flg)
{
win.style.height = parseInt(msg.style.height) + parseInt(tit.style.height) + 2*2;
sha.style.height = win.style.height;
msg.style.display = "block";
obj.innerHTML = "0";
}
else
{
win.style.height = parseInt(tit.style.height) + 2*2;
sha.style.height = win.style.height;
obj.innerHTML = "2";
msg.style.display = "none";
}
}
//关闭;
function cls(obj)
{ var win = obj.parentNode.parentNode;
var sha = win.nextSibling;
win.style.visibility = "hidden";
sha.style.visibility = "hidden";
}
//创建一个对象;
function xWin(id,w,h,l,t,tit,msg)
{
index = index+2;
this.id = id;
this.width = w;
this.height = h;
this.left = l;
this.top = t;
this.zIndex = index;
this.title = tit;
this.message = msg;
this.obj = null;
this.bulid = bulid;
this.bulid();
}
//初始化;
function bulid()
{
var str = ""
+ " <div id=xMsg" + this.id + " "
+ "style='"
+ "z-index:" + this.zIndex + ";"
+ "width:" + this.width + ";"
+ "height:" + this.height + ";"
+ "left:" + this.left + ";"
+ "top:" + this.top + ";"
+ "background-color:" + normal + ";"
+ "color:" + normal + ";"
+ "font-size:11px;"
+ "font-family:Verdana;"
+ "position:absolute;"
+ "cursor:default;"
+ "border:2px solid " + normal + ";"
+ "' "
+ "onmousedown='getFocus(this)'> "
+ " <div "
+ "style='"
+ "background-color:" + normal + ";"
+ "width:" + (this.width-2*2) + ";"
+ "height:20;"
+ "color:white;"
+ "' "
+ "onmousedown='startDrag(this)' "
+ "onmouseup='stopDrag(this)' "
+ "onmousemove='drag(this)' "
+ "ondblclick='min(this.childNodes[1])'"
+ "> "
+ " <span style='width:" + (this.width-2*12-4) + ";padding- left:3px;'> " + this.title + " </span> "
+ " <span style='width:12;border-width:0px;color:white;font- family:webdings;' onclick='min(this)'> 0 </span> "
+ " <span style='width:12;border-width:0px;color:white;font- family:webdings;' onclick='cls(this)'> r </span> "
+ " </div> "
+ " <div style='"
+ "width:100%;"
+ "height:" + (this.height-20-4) + ";"
+ "background-color:white;"
+ "line-height:14px;"
+ "word-break:break-all;"
+ "padding:3px;"
+ "'> " + this.message + " </div> "
+ " </div> "
+ " <div style='"
+ "width:" + this.width + ";"
+ "height:" + this.height + ";"
+ "top:" + this.top + ";"
+ "left:" + this.left + ";"
+ "z-index:" + (this.zIndex-1) + ";"
+ "position:absolute;"
+ "background-color:black;"
+ "filter:alpha(opacity=40);"
+ "'> by wildwind </div> ";
document.body.insertAdjacentHTML("beforeEnd",str);
}
//-->
</script> <script language='JScript'>
<!--
function initialize()
{
var b = new xWin("2",240,200,100,100,"班员信息","Welcome to visited my personal website: <br> <a href=http://www14.brinkster.com/wildcity target=_blank> http://wildcity.126.com </a> <br> and u can also sign my guestbook at: <br> <a href=http://www14.brinkster.com/wildcity/gbook target=_blank> http://wildcity.126.com/gbook </a> <br> <br> thx!!! =)..."); }
//window.onload = initialize;
//-->
</script>
</head>
<body onselectstart='return false' scroll='no' onload="initialize()"> </body>
</html> 看看这个例子
贴点代码对你应该有帮助。
<title>网页窗口-mdi测试</title>
<script>
var width=230
var height=200
</script>
<style>
div{position:absolute;cursor:default;}
.movediv{padding-left:10px;padding-top:3px;z-index:0; display:block;top:50;width:230;height:25;background-color:#ffffff;cursor:hand;background-image:url(..\img\bt.gif);}
.movedivup{padding-left:10px;padding-top:3px;z-index:10; display:block;top:50;width:230;height:25;background-color:#ffffff;cursor:hand;background-image:url(..\img\bt.gif);}
.textdiv{
display:block;top:23;left:0;width:230;height:200;background-color:#eeeeff;}
.rootdiv{
display:block;top:223;left:0;width:230;height:5;cursor:default;background-color:blue;}
.mindiv{
display:block;top:6;left:188;width:12;height:12px;cursor:default;}
.closediv{
display:block;top:6px;left:206;width:12;height:12px;cursor:default;}
</style>
<div id=movediv1 class=movediv onclick='this.classname="movedivup"' style="z-index:10">我的个人信息
<div id=div2 class=textdiv>
<div style="z-index:1;padding-left:5px"></div>
<div style="z-index:-1;top:0">
<img src=..\img\text.gif width=230 height=200>
</div>
</div>
<div id=movediv2 class=rootdiv><img src=..\img\root.gif></div>
<div id=div4 class=mindiv onclick="movediv1.style.display='none';div1.style.display=''"><div></div></div>
<div id=div11 class=closediv onclick="movediv1.style.display='none'"><div></div></div>
</div>
<div id=div5 style="z-index:0"></div>
<div id=div6 style="z-index:0"></div>
<div id=div7 style="z-index:0"></div>
<div id=div1 class=movediv style="width:180;top:0;left:0;display:none" onclick="movediv1.style.display='';div1.style.display='none'">我的个人信息</div>
<script>
var i=1;
var obj=null;
var dx,dy,objt,objl,whoclick=null;
function mousedown()
{ if(whoclick!=null)whoclick.classname="movediv";
obj=event.srcElement;
if(obj.id.indexOf("movediv") ==-1) {obj=null;return;}
obj.classname="movedivup";
dx=window.event.x;
dy=window.event.y;
objt=obj.offsetTop;
objl=obj.offsetLeft;
}function mouseup(){if(obj!=null) whoclick=obj;obj=null;}
function mousemove()
{if(obj!=null)
{
//obj.style.z-index=10;
obj.style.xp=window.event.x-dx;
obj.style.yp=window.event.y-dy;
obj.style.left=objl+obj.style.xp;
obj.style.top=objt+obj.style.yp;
}
}
document.onmousedown=mousedown
document.onmousemove=mousemove
document.onmouseup=mouseup
</script>
<script>
var width=230
var height=200
</script>
<style>
div{position:absolute;cursor:default;}
.movediv{padding-left:10px;padding-top:3px;z-index:0; display:block;top:50;width:230;height:25;background-color:#ffffff;cursor:hand;background-image:url(..\img\bt.gif);}
.movedivup{padding-left:10px;padding-top:3px;z-index:10; display:block;top:50;width:230;height:25;background-color:#ffffff;cursor:hand;background-image:url(..\img\bt.gif);}
.textdiv{
display:block;top:23;left:0;width:230;height:200;background-color:#eeeeff;}
.rootdiv{
display:block;top:223;left:0;width:230;height:5;cursor:default;background-color:blue;}
.mindiv{
display:block;top:6;left:188;width:12;height:12px;cursor:default;}
.closediv{
display:block;top:6px;left:206;width:12;height:12px;cursor:default;}
</style>
<div id=movediv1 class=movediv onclick='this.classname="movedivup"' style="z-index:10">我的个人信息
<div id=div2 class=textdiv>
<div style="z-index:1;padding-left:5px"></div>
<div style="z-index:-1;top:0">
<img src=..\img\text.gif width=230 height=200>
</div>
</div>
<div id=movediv2 class=rootdiv><img src=..\img\root.gif></div>
<div id=div4 class=mindiv onclick="movediv1.style.display='none';div1.style.display=''">min<div></div></div>
<div id=div11 class=closediv onclick="movediv1.style.display='none'">hide<div></div></div>
</div>
<div id=div5 style="z-index:0"></div>
<div id=div6 style="z-index:0"></div>
<div id=div7 style="z-index:0"></div>
<div id=div1 class=movediv style="width:180;top:0;left:0;display:none" onclick="movediv1.style.display='';div1.style.display='none'">我的个人信息</div>
<script>
var i=1;
var obj=null;
var dx,dy,objt,objl,whoclick=null;
function mousedown()
{ if(whoclick!=null)whoclick.classname="movediv";
obj=event.srcElement;
if(obj.id.indexOf("movediv") ==-1) {obj=null;return;}
obj.classname="movedivup";
dx=window.event.x;
dy=window.event.y;
objt=obj.offsetTop;
objl=obj.offsetLeft;
}function mouseup(){if(obj!=null) whoclick=obj;obj=null;}
function mousemove()
{if(obj!=null)
{
//obj.style.z-index=10;
obj.style.xp=window.event.x-dx;
obj.style.yp=window.event.y-dy;
obj.style.left=objl+obj.style.xp;
obj.style.top=objt+obj.style.yp;
}
}
document.onmousedown=mousedown
document.onmousemove=mousemove
document.onmouseup=mouseup
</script>
这里有点问题。 我调试成
var b = new xWin("2",240,200,100,100,"班员信息","Welcome to visited my personal");也不可以我是个js的新手。 但不是一个dev的新手。 虽然做过几年asp. 但那个时候js 多是做做校验,跑马灯的东西,没有现在这么复杂。我感觉你们的代码都是面向过程的做法来完成的。 我看了一些外国的例子。它们好像都是利用oop来做的。我的想法是 应该有一个class 对象来代表这个div. 我们对div做得动作由这个类自己来完成。这样的话逻辑复杂度会比较好的被分裂开。
如果这样的话,应该如何完成呢?新手无心请勿见怪。
CSDN会把代码自动产生空格的
无语
本来就是必须触发JS事件来完成,本来就是由JS自己完成的!
var obj=null;
var dx,dy,objt,objl,whoclick=null; function mousedown()
{
// 用obj 记录刚才在那个div 上面进行了down操作。
obj=event.srcElement;
dx=window.event.x;
dy=window.event.y;
objt=obj.offsetTop;
objl=obj.offsetLeft;
} function mouseup(){
//if(obj!=null) whoclick=obj;
//obj=null;
if(obj!=null) {
obj.style.left = window.event.x;
obj.style.top = window.event.y;
}
obj=null; //obj 对象清空
}
function mousemove()
{
if(obj!=null) // 如果有移动, 将这个div 也移动起来
{
obj.style.left = window.event.x;
obj.style.top = window.event.y;
}
}
document.onmousedown=mousedown
document.onmousemove=mousemove
document.onmouseup=mouseup
首先
document.onmousedown=mousedown
document.onmousemove=mousemove
document.onmouseup=mouseup 我本来想写在<div class='window' onmousedown="javascript:mousedown()" ....>
但是一运行 告诉我内存不足。 疑问。
同时我发现 当我移动一个单一div 的时候没有问题,可以运行,就是鼠标会猛烈的变为沙漏。
但是当我点击一个有多个子div 的时候
比如
<div>
<div>
<div>
....我在vs 调试发现,onmousedown 捕捉到event 发生在 第二个div 事件上面了。之后我移动鼠标,div就没有
反应了。同时伴随着鼠标猛烈的运行状态。我想那应该是onmouseove被运行了。星星能能解答一下吗?在六楼的例子里面,能不能改由class 的方式实现, 比如一种div 的,我希望点击以后 div背景色也变化,然后移动。而div2 背景不变化,只进行移动。 多谢那么多星星的指点。
就是ocument.body.insertAdjacentHTML("beforeEnd",str);
这个不兼容
<div style='background-color:#336699;width:156;height:20;color:white;' onmousedown='startDrag(this)' onmouseup='stopDrag(this)' onmousemove='drag(this)' ondblclick='min(this.childNodes[1])'>
<span style='width:132px;padding-left:3px;'>窗口4</span>
<span style='width:12px;border-width:0px;color:white;font-family:webdings;' onclick='min(this)'>0</span>
<span style='width:12px;border-width:0px;color:white;font-family:webdings;' onclick='ShowHide('4',null)'>r</span>
</div>
<div style='width:100%;height:176px;background-color:white;line-height:14px;word-break:break-all;padding:3px;'>xWin <br> A Cool Pop Div Window<br>Version:1.0<br>2002-8-13
</div>
</div>
<div id=xMsg4bg style='width:160px;height:200px;top:200px;left:200px;z-index:9999;position:absolute;background-color:black;filter:alpha(opacity=40);'>
</div>
<!--
function insertHtml(where, el, html){
where = where.toLowerCase();
if(el.insertAdjacentHTML){
switch(where){
case "beforebegin":
el.insertAdjacentHTML('BeforeBegin', html);
return el.previousSibling;
case "afterbegin":
el.insertAdjacentHTML('AfterBegin', html);
return el.firstChild;
case "beforeend":
el.insertAdjacentHTML('BeforeEnd', html);
return el.lastChild;
case "afterend":
el.insertAdjacentHTML('AfterEnd', html);
return el.nextSibling;
}
throw 'Illegal insertion point -> "' + where + '"';
}
var range = el.ownerDocument.createRange();
var frag;
switch(where){
case "beforebegin":
range.setStartBefore(el);
frag = range.createContextualFragment(html);
el.parentNode.insertBefore(frag, el);
return el.previousSibling;
case "afterbegin":
if(el.firstChild){
range.setStartBefore(el.firstChild);
frag = range.createContextualFragment(html);
el.insertBefore(frag, el.firstChild);
return el.firstChild;
}else{
el.innerHTML = html;
return el.firstChild;
}
case "beforeend":
if(el.lastChild){
range.setStartAfter(el.lastChild);
frag = range.createContextualFragment(html);
el.appendChild(frag);
return el.lastChild;
}else{
el.innerHTML = html;
return el.lastChild;
}
case "afterend":
range.setStartAfter(el);
frag = range.createContextualFragment(html);
el.parentNode.insertBefore(frag, el.nextSibling);
return el.nextSibling;
}
throw 'Illegal insertion point -> "' + where + '"';
}网上找的说这个是兼容的
你试试
div{position:absolute;cursor:default;}
.movediv{padding-left:10px;padding-top:3px;z-index:0; display:block;top:50;width:230;height:25;cursor:hand;background:#CCF;}
.movedivup{padding-left:10px;padding-top:3px;z-index:10;display:block;top:50;width:230;height:25;cursor:hand;}
.textdiv{
display:block;top:23;left:0;width:230;height:200;background-color:#eeeeff;}
.rootdiv{
display:block;top:223;left:0;width:230;height:5;cursor:default;background-color:blue;}
.mindiv{
display:block;top:1px;left:188px;width:20px;height:12px;text-align:center;cursor:default;border:2px solid #DDD;background:#EEE}
.closediv{
display:block;top:1px;left:206px;width:20px;height:12px;text-align:center;cursor:default;border:2px solid #DDD;background:#EEE}
</style>
<div id=movediv1 class=movediv onclick='this.classname="movedivup"' style="z-index:10">我的个人信息
<div id=div2 class=textdiv>
<div style="z-index:1;padding-left:5px"></div>
<div style="z-index:-1;top:0"></div>
</div>
<div id=movediv2 class=rootdiv></div>
<div id=div4 class=mindiv onclick="movediv1.style.display='none';div1.style.display=''" title="最小化">-<div></div></div>
<div id=div11 class=closediv onclick="movediv1.style.display='none'" title="关闭">x<div></div></div>
</div>
<div id=div1 class=movediv style="width:180;top:0;left:0;display:none" onclick="movediv1.style.display='';div1.style.display='none'">我的个人信息</div>
<script>
var obj=null;
var dx,dy,objt,objl,whoclick=null;
function mousedown()
{ if(whoclick!=null)whoclick.classname="movediv";
obj=event.srcElement;
if(obj.id.indexOf("movediv") ==-1) {obj=null;return;}
obj.classname="movedivup";
dx=window.event.x;
dy=window.event.y;
objt=obj.offsetTop;
objl=obj.offsetLeft;
}function mouseup(){if(obj!=null) whoclick=obj;obj=null;}
function mousemove()
{if(obj!=null)
{
//obj.style.z-index=10;
obj.style.xp=window.event.x-dx;
obj.style.yp=window.event.y-dy;
obj.style.left=objl+obj.style.xp;
obj.style.top=objt+obj.style.yp;
}
}
document.onmousedown=mousedown
document.onmousemove=mousemove
document.onmouseup=mouseup
由于document.body.insertAdjacentHTML("beforeEnd",str); 不兼容FF添加不上而已
所以我事先加了一个DIV