U.CD.Layout.js 4.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. Namespace.register("U.CD.LO"); //注册布局
  2. //此js虽然简单,但要整理一个逻辑还是比较费力,暂时如此了
  3. //太多地方需要做宽高控制了,定义一些全局变量。
  4. /*由于html设计原理的时效性,导致宽高不能auto,用js代码补齐*/
  5. U.CD.LO.SetWH = function () {
  6. if (!document.body.clientHeight) { location.href = location.href; } //如果没有客户端信息,则再次刷新本页
  7. //在项目开始时全部用100%,保证用户能看到全貌,然后在此处最终定义宽高。
  8. //纵向
  9. $("#UCD_TOP")[0].style.height = "37px";
  10. $("#UCD_CT_Top_Tab")[0].style.height = "30px"; //中间头部切换栏
  11. //$("#UCD_CT_BT")[0].style.height = "20px"; //中间底部命令行
  12. //横向
  13. // $("#UCD_TT")[0].style.width = "190px"; //左边工具栏宽度
  14. $("#UCD_CT")[0].style.width = document.body.clientWidth - 190 + "px"; //右边代码区域宽度
  15. //设置高度,高度无法100%;使用document.body.clientHeight必须CSS放前面?保证html body的值为100%,得不到,需要判断//window.screen.availWidth//document.documentElement.clientWidth //document.documentElement.innerWidth
  16. $("#UCD_Bottom")[0].style.height = document.body.clientHeight - $("#UCD_TOP")[0].clientHeight + "px"; //底部所有元素高度
  17. //中间代码,代码结果窗口高度
  18. var _ch = $("#UCD_Bottom")[0].clientHeight - $("#UCD_CT_Top_Tab")[0].clientHeight - $("#UCD_CT_BT")[0].clientHeight;
  19. if (_ch > 0) {
  20. $("#UCD_CT_CT")[0].style.height = _ch - 10 + "px";
  21. $("#UCD_CT_HH_Code")[0].style.height = parseInt((_ch - 10) * 0.68) + "px";
  22. $("#UCD_CT_IF")[0].style.height = parseInt((_ch - 10) * 0.32) + "px";
  23. }
  24. //代码窗口宽度,有可能小于0,判断一下
  25. //var _cw = $("#UCD_CT_CT")[0].clientWidth - $("#UCD_CT_IF")[0].clientWidth - 2;
  26. //if (_cw > 0) $("#UCD_CT_HH_Code")[0].style.width = _cw + "px";
  27. //工具栏控件区域高度
  28. var ub = $("#UCD_Bottom")[0].clientHeight - 35;
  29. ub > 0 ? $("#UCD_TT_Z")[0].style.height = ub + "px" : "0px";
  30. //如果资源窗口没有显示,则扩大代码区域,_tt是左边工具栏宽度 _ct是中间区域宽度 _rt是右边区域宽度 6是分割线宽度
  31. var _tt = $("#UCD_TT")[0], _ct = $("#UCD_CT")[0], _rt = $("#UCD_RTree")[0], _aw = document.body.clientWidth, _bk = 4;
  32. //如果资源管理器和工具栏都不可显示,则
  33. if (_aw != 0) {
  34. if (_tt.style.display == "none" && _rt.style.display == "none") { _ct.style.width = _aw - _bk + "px"; }
  35. if (_tt.style.display == "none" && _rt.style.display == "block") { _ct.style.width = _aw - _rt.clientWidth - _bk + "px"; }
  36. if (_tt.style.display == "block" && _rt.style.display == "none") { _ct.style.width = _aw - _tt.clientWidth - _bk + "px"; }
  37. if (_tt.style.display == "block" && _rt.style.display == "block") { _ct.style.width = _aw - _tt.clientWidth - _rt.clientWidth - _bk + "px"; }
  38. }
  39. //结果显示窗口给固定宽高才能有滚动条。
  40. var _if = $("#UCD_CT_SM_IF")[0], _ifct = $("#UCD_CT_IF")[0];
  41. _if.width = _if.parentNode.clientWidth + "px"; //必须设置宽度才有效? //iframe的100%不起作用啊。
  42. if (_ifct.clientHeight - 20 > 0) { _if.style.height = _ifct.clientHeight - 24 + "px"; }
  43. //代码区域宽度等于 包容器减去行号宽度
  44. var _code = $("#UCD_CT_Code")[0], _hh = $("#UCD_CT_HH_CT")[0], _rq = $("#UCD_CT_HH_Code")[0]
  45. _code.style.width = _rq.clientWidth - _hh.clientWidth + "px";
  46. }
  47. //单击左边分割线时,隐藏工具栏窗口?o为传递进来的控件类型
  48. U.CD.LO.HEToolbar = function (o) {
  49. $("#UCD_TT_R")[0].style.display = $("#UCD_TT_R")[0].style.display == "none" ? "block" : "none";
  50. U.CD.LO.SetWH();
  51. }
  52. //关闭资源管理器影响的布局//关闭资源管理器
  53. U.CD.LO.CloseZY = function () { $("#UCD_RTree")[0].style.display = "none"; U.CD.LO.SetWH(); }
  54. //打开资源管理器
  55. U.CD.LO.OpenZY = function () { $("#UCD_RTree")[0].style.display = "block"; U.CD.LO.SetWH(); }
  56. //打开或者关闭资源管理器,在顶部菜单使用
  57. U.CD.LO.OCZY = function () { $("#UCD_RTree")[0].style.display = $("#UCD_RTree")[0].style.display == "none" ? "block" : "none"; U.CD.LO.SetWH(); }
  58. //视图全屏模式,
  59. U.CD.LO.View = function () {
  60. var _v = $("#UCD_CT_IF")[0], _c = $("#UCD_CT_HH_Code")[0], _if = $("#UCD_CT_SM_IF")[0]
  61. _c.style.display = "none";
  62. _v.style.display = "block"; _v.style.height = "100%";
  63. U.CD.LO.SetWH();
  64. }
  65. //代码模式
  66. U.CD.LO.Code = function () {
  67. var _v = $("#UCD_CT_IF")[0], _c = $("#UCD_CT_HH_Code")[0];
  68. _v.style.display = "none";
  69. _c.style.display = "block"; _c.style.height = "100%";
  70. // U.CD.LO.SetWH();
  71. }
  72. //拆分模式
  73. U.CD.LO.Split = function () {
  74. var _v = $("#UCD_CT_IF")[0], _c = $("#UCD_CT_HH_Code")[0];
  75. //_v.style.width = "100%"; _c.style.width = "100%";
  76. _v.style.height = "30%"; _c.style.height = "70%";
  77. _v.style.display = "block"; _c.style.display = "block";
  78. U.CD.LO.SetWH();
  79. }