前段时间前辈让做js练习,写一个能让用户自己控制输入框位置大小的登陆页面,于是有了这段代码: <html> <head> <title>用户可自定义输入框的登陆界面</title> <mce:style type="text/css"><!-- body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; } --></mce:style><style type="text/css" mce_bogus="1">body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; }</style> <mce:script language="javascript"><!-- var x1; //第一个文本域的初始x位置 var y1; //第一个文本域的初始y位置 var x2; //第二个文本域的初始x位置 var y2; //第二个文本域的初始y位置 var x3; //文本域的结束x位置 var y3; //文本域的结束y位置 var iskeydown = false; //判断鼠标是否按下 var number=0; //记录画出的文本域个数 function My_clientx(event){ //鼠标按下事件,获取初始位置 if(number==0){ iskeydown = true; var userid = document.createElement("textarea"); userid.id="userid"; userid.name="username"; userid.value=""; document.getElementById("div1").appendChild(userid); x1 = event.clientX+document.body.scrollLeft || event.clientX+document.documentElement.scrollLeft; y1 = event.clientY+document.body.scrollLeft || event.clientY+document.documentElement.scrollLeft; }else if(number==1){ iskeydown = true; var passid = document.createElement("textarea"); passid.id="passid"; passid.name="password"; passid.value=""; document.getElementById("div2").appendChild(passid); x2 = event.clientX+document.body.scrollLeft || event.clientX+document.documentElement.scrollLeft; y2 = event.clientY+document.body.scrollLeft || event.clientY+document.documentElement.scrollLeft; } } function My_clienty(event){ //鼠标抬起事件时,画出div及其文本域 iskeydown = false; var div; var name; if(number==0){ div="div1"; name="userid"; x3 = event.clientX+document.body.scrollLeft || event.clientX+document.documentElement.scrollLeft; y3 = event.clientY+document.body.scrollLeft || event.clientY+document.documentElement.scrollLeft; drawRec(x1,y1,x3,y3,div,name); number++; }else{ div="div2"; name="passid"; x3 = event.clientX+document.body.scrollLeft || event.clientX+document.documentElement.scrollLeft; y3 = event.clientY+document.body.scrollLeft || event.clientY+document.documentElement.scrollLeft; drawRec(x2,y2,x3,y3,div,name); number++; } } function drawline(){ //当鼠标按下,移动鼠标,动态画出要画出的div大小及位置 var div; var name; if(number==0){ div="div1"; name="userid"; if(iskeydown==true){ x3 = event.clientX+document.body.scrollLeft || event.clientX+document.documentElement.scrollLeft; y3 = event.clientY+document.body.scrollLeft || event.clientY+document.documentElement.scrollLeft; drawRec(x1,y1,x3,y3,div,name); } }else{ div="div2"; name="passid"; if(iskeydown==true){ x3 = event.clientX+document.body.scrollLeft || event.clientX+document.documentElement.scrollLeft; y3 = event.clientY+document.body.scrollLeft || event.clientY+document.documentElement.scrollLeft; drawRec(x2,y2,x3,y3,div,name); } } } function drawRec(fromx,fromy,tox,toy,div,name){ //画出指定div,并动态控制其及其内部元素的的样式 if (iskeydown == true) { var div1 = document.getElementById(div); var userid = document.getElementById(name); var left; var top; var width; var height; if(tox>=fromx){ if(toy>=fromy){ left=fromx; top=fromy; width=tox-fromx; height=toy-fromy; }else{ left=fromx; top=toy; width=tox-fromx; height=fromy-toy; } }else{ if(toy>=fromy){ left=tox; top=fromy; width=fromx-tox; height=toy-fromy; }else{ left=tox; top=toy; width=fromx-tox; height=fromy-toy; } } div1.style.left=left; div1.style.top=top; div1.style.width=width; userid.style.height=height; userid.style.width=width; div1.style.height=height; userid.focus(); } } function del(){ //当点击重画按钮时,去除文本域 var div1 = document.getElementById("div1"); if(div1.lastChild!=null){ div1.removeChild(div1.lastChild); } div1.style.height=0; div1.style.width=0; var div2 = document.getElementById("div2"); if(div2.lastChild!=null){ div2.removeChild(div2.lastChild); } div2.style.height=0; div2.style.width=0; number=0; } // --></mce:script> </head> <body> <div align="center" style="vertical-align: top;width:100%;height:95%;background-image:url(1.jpg);background-repeat:x-repeat" οnmοusemοve="drawline()" οnmοusedοwn="My_clientx(event)" οnmοuseup="My_clienty(event)"> <form action="" method="post"> <div align="center" id="div1" style="vertical-align: top;filter:alpha(Opacity=50);position:absolute;left:0px;top:0px;border:0px;width:0px;height:0px;z-index:1;background:#ccc"> </div> <div align="center" id="div2" style="vertical-align: top;filter:alpha(Opacity=50);position:absolute;left:0px;top:0px;border:0px;width:0px;height:0px;z-index:1;background:#ccc"> </div> <input type="submit" value="登陆"/> </form> </div><input type="button" value="重画" οnclick="del()"/> </body> </html>