请帮忙!哪位有:页面上的层,可以展开,可以收缩,可增加多个层,也可以减少层。 谢谢 lz可以看看csdn论坛中的树控件,meizz写的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 lz可以看看csdn论坛中的树控件,meizz写的。 我的意思是:在页面上放几个层,横着上下排列(左右100%到页边的),可以用按钮展开,收缩的。自己可以增加或减少层的个数,我可以在各个层里面放FORM或数据绑定控件。 你要的是像许愿墙那样的吧晕,GOOGLE一下这方面的许愿墙就有例子了 <!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> <style type='text/css'> <!-- body{font-size:12px;} 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 divNumber = 0;var offx=6,offy=6; var moveable=false; var hover='orange',normal='#336699';//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; sha.style.left = obj.parentNode.style.left; sha.style.top = obj.parentNode.style.top; 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 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:8pt;" + "font-family:Tahoma;" + "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='ShowHide(\""+this.id+"\",null)'>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 id=xMsg" + this.id + "bg 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);" + "'> </div>"; document.body.insertAdjacentHTML("beforeEnd",str); } //显示隐藏窗口 function ShowHide(id,dis){ var bdisplay = (dis==null)?((document.getElementById("xMsg"+id).style.display=="")?"none":""):dis document.getElementById("xMsg"+id).style.display = bdisplay; document.getElementById("xMsg"+id+"bg").style.display = bdisplay; } function initialize() { var a = new xWin("1",160,200,200,200,"窗口1","初始化自动加载的窗口1<br /><a style='font-size:16px;' href='http://jenney.cnblogs.com'>http://jenney.cnblogs.com</a>原创"); var b = new xWin("2",240,200,100,100,"窗口2","初始化自动加载的窗口2<br /><a style='font-size:16px;' href='http://jenney.cnblogs.com'>http://jenney.cnblogs.com</a>原创"); var c = new xWin("3",200,160,250,50,"窗口3","初始化自动加载的窗口3<br /><a style='font-size:16px;' href='http://jenney.cnblogs.com'>http://jenney.cnblogs.com</a>原创"); divNumber = 3; }function addDiv(){var divID = ++divNumber;var divTitle = "窗口" + divID;var a = new xWin(divID ,400,200,200,200, divTitle ,"这是通过按钮添加的"+divTitle +"<br /><a style='font-size:16px;' href='http://jenney.cnblogs.com'>http://jenney.cnblogs.com</a>原创");}window.onload = initialize; //--> </script> </head> <base target="_blank"><body> <input type="button" id="btnAdd" onclick="addDiv()" value="添加一个新层" /></body></html>类似这样的吧? <style type="text/css">#one,#two{ line-height:25px; overflow:hidden; height:auto; border:1px solid #999;}#one,#two{height:25px;}#one_2,#two_2{height:25px;}#one_3,#two_3{height:auto;}</style></head><body><script language="JavaScript" type="text/javascript">function $(id ){return document.getElementById(id)}function $H(id){return parseInt($(id).style.height||$(id).currentStyle.height)}function openDiv (id,obj){ var h2=$H(id); if(h2==25)addH=5; else addH=-5; son(id,obj);}var addHfunction son(id,obj){ var h2=$H(id); var h4=$H(id+"_2"); var h5=parseInt($(id+"_3").offsetHeight); var h6=h4+h5; if(addH >0 && h2<=(h6+26) || addH <0 && h2>25){ $(id).style.height=h2+addH+"px"; setTimeout(function(){son(id,obj)},40) } if (addH >0)obj.innerHTML="-" else obj.innerHTML="+"}</script> <div id="one"> <span id="one_2" style="font-weight:700;width:95%">标题</span><span onclick="openDiv('one',this)">+</span><br> <span id="one_3">在页面上放几个层,横着上下排列(左右100%到页边的),可以用按钮展开,收缩的。自己可以增加或减少层的个数,我可以在各个层里面放FORM或数据绑定控件!</span></div> <div id="two"> <span id="two_2" style="font-weight:700;width:95%">标题</span><span onclick="openDiv('two',this)">+</span><br> <span id="two_3"> <p>在页面上放几个层,横着上下排列(左右100%到页边的),可以用按钮展开,收缩的。自己可以增加或减少层的个数,我可以在各个层里面放FORM或数据绑定控件! <p>在页面上放几个层,横着上下排列(左右100%到页边的),可以用按钮展开,收缩的。自己可以增加或减少层的个数,我可以在各个层里面放FORM或数据绑定控件! <p>在页面上放几个层,横着上下排列(左右100%到页边的),可以用按钮展开,收缩的。自己可以增加或减少层的个数,我可以在各个层里面放FORM或数据绑定控件! </span> </div> </body> try<style type="text/css">#one,#two{ line-height:25px; overflow:hidden; height:auto; border:1px solid #999;}#one,#two{height:25px;}#one_2,#two_2{height:25px;}#one_3,#two_3{height:auto;}</style></head><body><script language="JavaScript" type="text/javascript">function $(id ){return document.getElementById(id)}function $H(id){return parseInt($(id).style.height||$(id).currentStyle.height)}function openDiv (id,obj){ var h2=$H(id); if(h2<=25)addH=5; else addH=-5; son(id,obj);}var addHfunction $objH(id){ var h2=$H(id); var h4=$H(id+"_2"); var h5=parseInt($(id+"_3").offsetHeight); var h6=h4+h5; return [h2,h6]}function son(id,obj){ var h2=$objH(id)[0] var h6=$objH(id)[1]; if(addH >0 && h2<=(h6+26) || addH <0 && h2>26){ $(id).style.height=h2+addH+"px"; setTimeout(function(){son(id,obj)},40) } else if (addH<0) $(id).style.height="25px"; if (addH >0)obj.innerHTML="-" else obj.innerHTML="+"}function init(){ $("one").style.height=$objH("one")[1]+30 $("two").style.height=$objH("two")[1]+26}onload=init</script> <div id="one"> <span id="one_2" style="font-weight:700;width:95%">标题</span><span onclick="openDiv('one',this)">-</span><br> <span id="one_3">在页面上放几个层,横着上下排列(左右100%到页边的),可以用按钮展开,收缩的。自己可以增加或减少层的个数,我可以在各个层里面放FORM或数据绑定控件!</span></div> <div id="two"> <span id="two_2" style="font-weight:700;width:95%">标题</span><span onclick="openDiv('two',this)">-</span><br> <span id="two_3"> <p>在页面上放几个层,横着上下排列(左右100%到页边的),可以用按钮展开,收缩的。自己可以增加或减少层的个数,我可以在各个层里面放FORM或数据绑定控件! <p>在页面上放几个层,横着上下排列(左右100%到页边的),可以用按钮展开,收缩的。自己可以增加或减少层的个数,我可以在各个层里面放FORM或数据绑定控件! <p>在页面上放几个层,横着上下排列(左右100%到页边的),可以用按钮展开,收缩的。自己可以增加或减少层的个数,我可以在各个层里面放FORM或数据绑定控件! </span> </div> 求一个php下拉菜单的算法? 判断函数是否正确 关于BS程序的性能问题!迷惑~!! 有关层的问题!!求教 如何用JS取文件后缀名? 如何给创建的元素增加一个属性? 怎么使一打开一个网页,就使里面的一个文本框获得焦点? 哪位大侠有Jbuild的注册号。 有哪位能解释一下吗? 判断是否为字母,或者数字的函数是什么? 关于div层拖放问题,希望大家指点 求教select美化问题?
在页面上放几个层,横着上下排列(左右100%到页边的),可以用按钮展开,收缩的。自己可以增加或减少层的个数,我可以在各个层里面放FORM或数据绑定控件。
你要的是像许愿墙那样的吧晕,GOOGLE一下这方面的许愿墙就有例子了
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type='text/css'>
<!--
body{font-size:12px;}
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 divNumber = 0;
var offx=6,offy=6;
var moveable=false;
var hover='orange',normal='#336699';//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;
sha.style.left = obj.parentNode.style.left;
sha.style.top = obj.parentNode.style.top;
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 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:8pt;"
+ "font-family:Tahoma;"
+ "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='ShowHide(\""+this.id+"\",null)'>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 id=xMsg" + this.id + "bg 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);"
+ "'> </div>";
document.body.insertAdjacentHTML("beforeEnd",str);
}
//显示隐藏窗口
function ShowHide(id,dis){
var bdisplay = (dis==null)?((document.getElementById("xMsg"+id).style.display=="")?"none":""):dis
document.getElementById("xMsg"+id).style.display = bdisplay;
document.getElementById("xMsg"+id+"bg").style.display = bdisplay;
} function initialize()
{
var a = new xWin("1",160,200,200,200,"窗口1","初始化自动加载的窗口1<br /><a style='font-size:16px;' href='http://jenney.cnblogs.com'>http://jenney.cnblogs.com</a>原创");
var b = new xWin("2",240,200,100,100,"窗口2","初始化自动加载的窗口2<br /><a style='font-size:16px;' href='http://jenney.cnblogs.com'>http://jenney.cnblogs.com</a>原创");
var c = new xWin("3",200,160,250,50,"窗口3","初始化自动加载的窗口3<br /><a style='font-size:16px;' href='http://jenney.cnblogs.com'>http://jenney.cnblogs.com</a>原创");
divNumber = 3;
}
function addDiv(){
var divID = ++divNumber;
var divTitle = "窗口" + divID;
var a = new xWin(divID ,400,200,200,200, divTitle ,"这是通过按钮添加的"+divTitle +"<br /><a style='font-size:16px;' href='http://jenney.cnblogs.com'>http://jenney.cnblogs.com</a>原创");
}
window.onload = initialize;
//-->
</script>
</head>
<base target="_blank">
<body>
<input type="button" id="btnAdd" onclick="addDiv()" value="添加一个新层" />
</body>
</html>
类似这样的吧?
<style type="text/css">
#one,#two{
line-height:25px;
overflow:hidden;
height:auto;
border:1px solid #999;
}
#one,#two{height:25px;}
#one_2,#two_2{height:25px;}
#one_3,#two_3{height:auto;}
</style>
</head>
<body>
<script language="JavaScript" type="text/javascript">
function $(id ){return document.getElementById(id)}
function $H(id){return parseInt($(id).style.height||$(id).currentStyle.height)}
function openDiv (id,obj){
var h2=$H(id);
if(h2==25)addH=5;
else addH=-5;
son(id,obj);
}
var addH
function son(id,obj){
var h2=$H(id);
var h4=$H(id+"_2");
var h5=parseInt($(id+"_3").offsetHeight);
var h6=h4+h5;
if(addH >0 && h2<=(h6+26) || addH <0 && h2>25){
$(id).style.height=h2+addH+"px";
setTimeout(function(){son(id,obj)},40)
}
if (addH >0)obj.innerHTML="-"
else obj.innerHTML="+"
}
</script>
<div id="one">
<span id="one_2" style="font-weight:700;width:95%">标题</span><span onclick="openDiv('one',this)">+</span><br>
<span id="one_3">在页面上放几个层,横着上下排列(左右100%到页边的),可以用按钮展开,收缩的。自己可以增加或减少层的个数,我可以在各个层里面放FORM或数据绑定控件!</span></div>
<div id="two">
<span id="two_2" style="font-weight:700;width:95%">标题</span><span onclick="openDiv('two',this)">+</span><br>
<span id="two_3">
<p>在页面上放几个层,横着上下排列(左右100%到页边的),可以用按钮展开,收缩的。自己可以增加或减少层的个数,我可以在各个层里面放FORM或数据绑定控件!
<p>在页面上放几个层,横着上下排列(左右100%到页边的),可以用按钮展开,收缩的。自己可以增加或减少层的个数,我可以在各个层里面放FORM或数据绑定控件!
<p>在页面上放几个层,横着上下排列(左右100%到页边的),可以用按钮展开,收缩的。自己可以增加或减少层的个数,我可以在各个层里面放FORM或数据绑定控件!
</span>
</div>
</body>
#one,#two{
line-height:25px;
overflow:hidden;
height:auto;
border:1px solid #999;
}
#one,#two{height:25px;}
#one_2,#two_2{height:25px;}
#one_3,#two_3{height:auto;}
</style>
</head>
<body>
<script language="JavaScript" type="text/javascript">
function $(id ){return document.getElementById(id)}
function $H(id){return parseInt($(id).style.height||$(id).currentStyle.height)}
function openDiv (id,obj){
var h2=$H(id);
if(h2<=25)addH=5;
else addH=-5;
son(id,obj);
}
var addH
function $objH(id){
var h2=$H(id);
var h4=$H(id+"_2");
var h5=parseInt($(id+"_3").offsetHeight);
var h6=h4+h5;
return [h2,h6]}
function son(id,obj){
var h2=$objH(id)[0]
var h6=$objH(id)[1];
if(addH >0 && h2<=(h6+26) || addH <0 && h2>26){
$(id).style.height=h2+addH+"px";
setTimeout(function(){son(id,obj)},40)
}
else if (addH<0)
$(id).style.height="25px";
if (addH >0)obj.innerHTML="-"
else obj.innerHTML="+"
}
function init(){
$("one").style.height=$objH("one")[1]+30
$("two").style.height=$objH("two")[1]+26
}
onload=init
</script>
<div id="one">
<span id="one_2" style="font-weight:700;width:95%">标题</span><span onclick="openDiv('one',this)">-</span><br>
<span id="one_3">在页面上放几个层,横着上下排列(左右100%到页边的),可以用按钮展开,收缩的。自己可以增加或减少层的个数,我可以在各个层里面放FORM或数据绑定控件!</span></div>
<div id="two">
<span id="two_2" style="font-weight:700;width:95%">标题</span><span onclick="openDiv('two',this)">-</span><br>
<span id="two_3">
<p>在页面上放几个层,横着上下排列(左右100%到页边的),可以用按钮展开,收缩的。自己可以增加或减少层的个数,我可以在各个层里面放FORM或数据绑定控件!
<p>在页面上放几个层,横着上下排列(左右100%到页边的),可以用按钮展开,收缩的。自己可以增加或减少层的个数,我可以在各个层里面放FORM或数据绑定控件!
<p>在页面上放几个层,横着上下排列(左右100%到页边的),可以用按钮展开,收缩的。自己可以增加或减少层的个数,我可以在各个层里面放FORM或数据绑定控件!
</span>
</div>