/* ForeseeJS控件对象:动态WebUI——图层折叠 * 使用示例: * var fs_divFolder = new Foresee.DivFolder(); // 实例化该对象 * fs_divFolder.fold("a_div's_id"); // 根据指定的id,将某DIV折叠(隐藏) */ Foresee.DivFolder = Foresee.create(); Foresee.DivFolder.prototype = (new Foresee.Base()).extend({ /* 将指定id的DIV进行折叠 */ unfold: function(objId) { var div=this.getObject(objId); // 得到需要折叠的DIV if (div != null) { div.style.visibility = "visible"; div.style.position = "static"; } }, /* 将指定id的DIV展开 */ fold: function(objId) { var div=this.getObject(objId); // 得到需要折叠的DIV if (div != null) { div.style.position = "absolute"; div.style.visibility = "hidden"; } }, /* 将指定id的DIV根据当前状态进行反操作 */ reverse: function(objId) { var div=this.getObject(objId); // 得到需要折叠的DIV if (div != null) { if ("hidden" == (div.style.visibility)) { // 判断当前状态 this.unfold(objId); } else { this.fold(objId); } } } }); /* ForeseeJS控件对象:动态WebUI——下拉菜单 * 使用示例: * var fs_menu = new Foresee.DropdownMenu(); // 实例化该对象 * fs_menu.show("a_div's_id"); // 根据指定的id,将某DIV以浮动的方式显示 */ Foresee.DropdownMenu = Foresee.create(); Foresee.DropdownMenu.prototype = (new Foresee.Base()).extend({ show: function(objId) { var div=this.getObject(objId); // 得到下拉菜单DIV var mask=this.getMask(objId); // 得到蒙层 if (div != null) { if (mask != null) { div.parentNode.appendChild(mask); // 添加蒙层到DocuemntTree中 mask.style.visibility = "visible"; mask.style.width=div.offsetWidth; mask.style.height=div.offsetHeight; } div.style.visibility = "visible"; } }, hide: function(objId) { var mask=this.getMask(objId); // 得到蒙层 var div=this.getObject(objId); // 得到下拉菜单DIV if (mask != null) { mask.style.visibility = "hidden"; } try{div.parentNode.removeChild(mask);}catch(ex){} // FireFox中将出错,但不影响执行 if (div != null) { div.style.visibility = "hidden"; } }, getMask: function(objId) { // 获取指定ID对象的对应蒙层(也有地方称其为垫片),没有则直接创建。 // 因为设计上的问题,HTML中的某些控件不接受z-index属性,导致这类控件将永远显示在DIV的上方; // 但是在IE5.5后,iframe能够接收z-index属性,并能够总是显示在其它控件的上方, // 那么就利用一个iframe来蒙盖其它控件,然后在通过z-index的控制使下拉菜单DIV显示在iframe的上方。 var maskId="if_mask_" + objId; if (this.getObject(maskId) != null) { return this.getObject(maskId); } else { return document.createElement(""); } } });