linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘网络学院网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > JavaScript >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·javascript 时间对象的格式化
·去掉字符串前后的空格
·javascript 事件监听机制
·javascript 事件调用顺序
·js刷新框架子页面的七种方法
·JavaScript:替换字符串
·IE下的JScript编程需注意的内存
·用javascript操作word文档
·Javascript中CTRL+回车提交表单
·JS 获取鼠标位置
·javascript判断Email地址是否有
·Javascript中Select的OnChange
·JS实现的滑动展开与折叠效果
·有分页功能的WEB打印
·Javascript实现窗口最大化的严
最新文章
·使用CSS改变表格边框样式
·为网页添加浮动广告
·判断表单中添加是否数字的JS与
·让浏览器状态栏动起来
·使用Javascript制作行间颜色间
·禁止用右键查看源代码
·网页侦测四法
·制作弹出公告窗口
·为网页添加特效
·网页中取消鼠标右键方法大全
·JavaScript 根据屏幕解析度显示
·如何实现浏览器上的右键菜单
·如何制作浮动广告
·让弹出窗口变得“体贴”一些
·JavaScript技巧:让网页自动穿上
Google
 
通过JAVAScript实现页面自适应
[ 作者:  加入时间:2007-10-30 14:27:43  来自:Linux联盟收集整理 ]
有时候,我们可能需要象新版的Yahoo邮箱一样,让一些数据显示块可以根据页面大小进行自适应。事实并不难,但是如果单纯用CSS控制的话,往往不能完全实现我们要的效果,这时候需要借助javascript,Javascript可以让我我们实现司空见怪的自适应页面,在iSunXoft的HR开源项目就应用到.

  实现原理:

  获取IE显示屏幕的宽高.确定哪些对象是绝对位置是固定的,那些是不固定的,哪些长宽是固定,然后象WIN FORM程序一样,根所软件界面的大小,进行设计相关对象的长宽,绝对位置等属性,但是在WEB上程序没有办法实时检测到窗口大小变化,只能用让实现自适应的方法通过SetTimeout 函数进行隔时递归调用.

  下面是摘自iSunXoft Hr开源项目SysForm.aspx实现的方法.

  注:$("")是有变化的元素.

   var h;TrPLinux联盟
   var w;TrPLinux联盟
   function resize()TrPLinux联盟
   {   TrPLinux联盟
    TrPLinux联盟
    var he = document.body.offsetHeight;TrPLinux联盟
    var wi = document.body.offsetWidth;TrPLinux联盟
    if($("DataTable").style.display.toLowerCase()==""||$("DataTable").style.display.toLowerCase()=="inline")TrPLinux联盟
    {TrPLinux联盟
     if (h==he&&w==wi)TrPLinux联盟
     {TrPLinux联盟
      if($("leftMenu").style.display.toLowerCase() == "none" )TrPLinux联盟
      {TrPLinux联盟
       $("DivDataList").style.width = wi - 30;TrPLinux联盟
      }TrPLinux联盟
      elseTrPLinux联盟
      {TrPLinux联盟
       $("DivDataList").style.width = wi - 223;TrPLinux联盟
      }        TrPLinux联盟
      setTimeout("resize()",1000);TrPLinux联盟
      return;TrPLinux联盟
     }TrPLinux联盟
     h = he;TrPLinux联盟
     w = wi;TrPLinux联盟
     TrPLinux联盟
     if (he>100)TrPLinux联盟
     {TrPLinux联盟
      $("DivDataList").style.height = he - 172;TrPLinux联盟
}TrPLinux联盟
     if(wi>200)TrPLinux联盟
     {TrPLinux联盟
      $("DivDataList").style.width = wi - 223;TrPLinux联盟
      if($("leftMenu").style.display.toLowerCase() == "none" )TrPLinux联盟
      {TrPLinux联盟
       $("DivDataList").style.width = wi - 30;TrPLinux联盟
      }TrPLinux联盟
     }TrPLinux联盟
    }

    if($("DataEmpWidows").style.display.toLowerCase()=="inline"||$("DataEmpWidows").style.display.toLowerCase()=="")TrPLinux联盟
    {TrPLinux联盟
     if (h==he&&w==wi)TrPLinux联盟
     {TrPLinux联盟
      if($("leftMenu").style.display.toLowerCase() == "none" )TrPLinux联盟
      {TrPLinux联盟
       $("DataEmpWidows").style.width = wi - 30;TrPLinux联盟
      }TrPLinux联盟
      elseTrPLinux联盟
      {TrPLinux联盟
       $("DataEmpWidows").style.width = wi - 223;TrPLinux联盟
      }        TrPLinux联盟
     }TrPLinux联盟
     h = he;TrPLinux联盟
     w = wi;TrPLinux联盟
     if (he>150)TrPLinux联盟
     {TrPLinux联盟
      $("DataEmpWidows").style.height = he - 132;TrPLinux联盟
     }TrPLinux联盟
     if(wi>200)TrPLinux联盟
     {TrPLinux联盟
      $("DataEmpWidows").style.width = wi - 223;TrPLinux联盟
      if($("leftMenu").style.display.toLowerCase() == "none" )TrPLinux联盟
      {TrPLinux联盟
       $("DataEmpWidows").style.width = wi - 30;TrPLinux联盟
      }TrPLinux联盟
     }TrPLinux联盟
    TrPLinux联盟
    }TrPLinux联盟
    if(typeof($("EipWindows")) != "undefined")TrPLinux联盟
    {TrPLinux联盟
     //if($("EipWindows").style.display.toLowerCase()=="inline")TrPLinux联盟
     //{TrPLinux联盟
     // if (h==he&&w==wi)TrPLinux联盟
     // {TrPLinux联盟
     //  if($("leftMenu").style.display.toLowerCase() == "none" )TrPLinux联盟
     //  {TrPLinux联盟
     //   $("EipWindows").style.width = wi - 30;TrPLinux联盟
     //  }TrPLinux联盟
     //  elseTrPLinux联盟
     //  {TrPLinux联盟
     //   $("EipWindows").style.width = wi - 223;TrPLinux联盟
     //  }        TrPLinux联盟
     // }TrPLinux联盟
     // h = he;TrPLinux联盟
     // w = wi;TrPLinux联盟
     // if (he>150)TrPLinux联盟
     // {TrPLinux联盟
     //  $("EipWindows").style.height = he - 132;TrPLinux联盟
     // }TrPLinux联盟
     // if(wi>200)TrPLinux联盟
     // {TrPLinux联盟
     //  $("EipWindows").style.width = wi - 223;TrPLinux联盟
     //  if($("leftMenu").style.display.toLowerCase() == "none" )TrPLinux联盟
     //  {TrPLinux联盟
     //   $("EipWindows").style.width = wi - 30;TrPLinux联盟
     //  }TrPLinux联盟
     // }    TrPLinux联盟
     //}TrPLinux联盟
    }TrPLinux联盟
    setTimeout("resize()",1000);TrPLinux联盟
   }TrPLinux联盟
   resize();

   然后就在网页上调用resize();一旦窗口大小有变化,或是分辩率有变化,都能确保能够实现真正意义上的自适应.

Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·如何优化JavaScript脚本的性能  (2007-10-30 14:25:25)
 ·几个有用的Javascript验证脚本  (2007-10-30 14:24:47)
 ·Javascript+ASP打造无刷新新闻列表  (2007-10-30 14:23:38)
 ·如何用javascript防止双击  (2007-10-30 14:19:44)
 ·JavaScript 访问 JSF 组件的方法  (2007-10-30 14:18:21)
 ·JavaScript实现仿Windows关机效果  (2007-10-30 14:14:42)
 ·JavaScript去除空格的三种方法  (2007-10-30 14:07:32)
 ·用Javascript评估用户输入密码的强度  (2007-10-30 14:06:19)
 ·JavaScript处理事件:单击事件onClick  (2007-10-30 14:01:38)
 ·Javascript制作声音按钮的代码  (2007-10-30 13:53:06)