js实现仿Discuz文本框弹出层效果

前端技术 2023/09/08 JavaScript

本文实例讲述了js实现仿Discuz文本框弹出层效果。分享给大家供大家参考。具体如下:

这是一个在经典论坛曾经热讨论的问题,记得在QQ邮箱里也有类似功能,Discuz7.0论坛里同样也有,当你的鼠标单击文本框的时候,会弹出一个包含文字、图片、表单无素的DIV层,里面的元素都可以进行操作,很方便,选中的值会自动添加到文本框内。本代码经过了多次修正,没有进行过多美化,你美工好的话可以自己美化。

运行效果截图如下:

具体代码如下:

<!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>文本框弹出内容框并取值</title>
<Script language=\"javascript\" type=\"text/javascript\">
function moveselect(obj,target,all){
 if (!all) all=0
 if (obj!=\"[object]\") obj=eval(\"document.all.\"+obj)
 target=eval(\"document.all.\"+target)
 if (all==0)
 {
 while (obj.selectedIndex>-1){
 mot=obj.options[obj.selectedIndex].text
 mov=obj.options[obj.selectedIndex].value
 obj.remove(obj.selectedIndex)
 var newoption=document.createElement(\"OPTION\");
 newoption.text=mot
 newoption.value=mov
 target.add(newoption)
 }
 }
 else
 {
 for (i=0;i<obj.length;i++)
 {
 mot=obj.options[i].text
 mov=obj.options[i].value
 var newoption=document.createElement(\"OPTION\");
 newoption.text=mot
 newoption.value=mov
 target.add(newoption)
 }
obj.options.length=0
 }
}
function dakai(){
document.getElementById(\'light\').style.display=\'block\';
document.getElementById(\'fade\').style.display=\'block\'
}
function guanbi(){
var yuanGong=document.getElementById(\"yuanGong\")
yuanGong.value=\"\"//如果不加这句,则每次选择的结果追加
var huoQu=document.getElementById(\"D2\")
for(var k=0;k<huoQu.length;k++)
yuanGong.value=yuanGong.value + huoQu.options[k].value + \" \"//这里的\" \"中间为空格,为字符间的分隔符,你可以改成别的
document.getElementById(\'light\').style.display=\'none\';
document.getElementById(\'fade\').style.display=\'none\' 
}
</script>
<style>
.black_overlay{display: none;position: absolute;top: 0%;left: 0%;width: 100%;height: 100%;background-color:#FFFFFF;z-index:1001;-moz-opacity: 0.8;opacity:.80;filter: alpha(opacity=80);}
.white_content {display: none;position: absolute;top: 25%;left: 25%;width: 50%;height: 50%;padding: 16px;border: 16px solid orange; margin:-32px; background-color: white;z-index:1002;overflow: auto;}
</style>
</head>
<body>
<input type=\"text\" id=\"yuanGong\" onclick=\"dakai()\" size=\"50\">
<div id=\"light\" class=\"white_content\">
<table border=\"1\" width=\"350\" id=\"table4\" bordercolor=\"#CCCCCC\" bordercolordark=\"#CCCCCC\" bordercolorlight=\"#FFFFFF\" cellpadding=\"3\" cellspacing=\"0\">
  <tr>
  <td width=\"150\" height=\"200\" align=\"center\" valign=\"middle\">
   该部门员工
   <select size=\"12\" name=\"D1\" ondblclick=\"moveselect(this,\'D2\')\" multiple=\"multiple\" style=\"width:140px\">
   <option value=\"员工1\">员工1</option>
   <option value=\"员工2\">员工2</option>
   <option value=\"员工3\">员工3</option>
   </select>
  </td>
  <td width=\"50\" height=\"200\" align=\"center\" valign=\"middle\">
  <input type=\"button\" value=\"<<\" name=\"B3\" onclick=\"moveselect(\'D2\',\'D1\',1)\" /><br />
  <input type=\"button\" value=\"<\" name=\"B5\" onclick=\"moveselect(\'D2\',\'D1\')\" /><br />
  <input type=\"button\" value=\">\" name=\"B6\" onclick=\"moveselect(\'D1\',\'D2\')\" /><br />
  <input type=\"button\" value=\">>\" name=\"B4\" onclick=\"moveselect(\'D1\',\'D2\',1)\" /><br />
  </td>
  <td width=\"150\" height=\"200\" align=\"center\" valign=\"middle\">
  未划分部门员工
   <select size=\"12\" name=\"D2\" id=\"D2\" ondblclick=\"moveselect(this,\'D1\')\" multiple=\"multiple\" style=\"width:140px\">
   <option value=\"员工4\">员工4</option>
   <option value=\"员工5\">员工5</option>
   </select>
  </td>
  </tr>
</table>
<a href = \"javascript:void(0)\" onclick = \"guanbi()\">确定</a><BR><BR>
</div>
<div id=\"fade\" class=\"black_overlay\"></div>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

本文地址:https://www.stayed.cn/item/23254

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。