通过JAVAScript实现页面自适应


Posted in Javascript onJanuary 19, 2007

有时候,我们可能需要象新版的Yahoo邮箱一样,让一些数据显示块可以根据页面大小进行自适应。事实并不难,但是如果单纯用CSS控制的话,往往不能完全实现我们要的效果,这时候需要借助javascript,Javascript可以让我我们实现司空见怪的自适应页面,在iSunXoft的HR开源项目就应用到.
        实现原理:
         获取IE显示屏幕的宽高.确定哪些对象是绝对位置是固定的,那些是不固定的,哪些长宽是固定,然后象WIN FORM程序一样,根所软件界面的大小,进行设计相关对象的长宽,绝对位置等属性,但是在WEB上程序没有办法实时检测到窗口大小变化,只能用让实现自适应的方法通过SetTimeout 函数进行隔时递归调用.
         下面是摘自iSunXoft Hr开源项目SysForm.aspx实现的方法.
         注:$("")是有变化的元素.
   var h;
   var w;
   function resize()
   {   

    var he = document.body.offsetHeight;
    var wi = document.body.offsetWidth;
    if($("DataTable").style.display.toLowerCase()==""||$("DataTable").style.display.toLowerCase()=="inline")
    {
     if (h==he&&w==wi)
     {
      if($("leftMenu").style.display.toLowerCase() == "none" )
      {
       $("DivDataList").style.width = wi - 30;
      }
      else
      {
       $("DivDataList").style.width = wi - 223;
      }        
      setTimeout("resize()",1000);
      return;
     }
     h = he;
     w = wi;

     if (he>100)
     {
      $("DivDataList").style.height = he - 172;

     }
     if(wi>200)
     {
      $("DivDataList").style.width = wi - 223;
      if($("leftMenu").style.display.toLowerCase() == "none" )
      {
       $("DivDataList").style.width = wi - 30;
      }
     }
    }

    if($("DataEmpWidows").style.display.toLowerCase()=="inline"||$("DataEmpWidows").style.display.toLowerCase()=="")
    {
     if (h==he&&w==wi)
     {
      if($("leftMenu").style.display.toLowerCase() == "none" )
      {
       $("DataEmpWidows").style.width = wi - 30;
      }
      else
      {
       $("DataEmpWidows").style.width = wi - 223;
      }        
     }
     h = he;
     w = wi;
     if (he>150)
     {
      $("DataEmpWidows").style.height = he - 132;
     }
     if(wi>200)
     {
      $("DataEmpWidows").style.width = wi - 223;
      if($("leftMenu").style.display.toLowerCase() == "none" )
      {
       $("DataEmpWidows").style.width = wi - 30;
      }
     }

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

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

Javascript 相关文章推荐
jQuery使用toggleClass方法动态添加删除Class样式的方法
Mar 26 Javascript
js实现简单秒表走动的时钟特效
Mar 25 Javascript
JavaScript常用标签和方法总结
Sep 01 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
Nov 22 Javascript
vuejs响应用户事件(如点击事件)
Mar 14 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
Aug 02 Javascript
在Vue中获取组件声明时的name属性方法
Sep 12 Javascript
解决vue axios的封装 请求状态的错误提示问题
Sep 25 Javascript
使用pm2自动化部署node项目的方法步骤
Jan 28 Javascript
Vue插槽原理与用法详解
Mar 05 Javascript
详解在网页上通过JS实现文本的语音朗读
Mar 28 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
Sep 25 Javascript
Javascript----文件操作
Jan 18 #Javascript
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
Jan 16 #Javascript
javaScript对象和属性的创建方法
Jan 15 #Javascript
jQuery 1.0.4 - New Wave Javascript(js源文件)
Jan 15 #Javascript
新浪的图片新闻效果
Jan 13 #Javascript
jQuery中文入门指南,翻译加实例,jQuery的起点教程
Jan 13 #Javascript
用htc组件制作windows选项卡
Jan 13 #Javascript
You might like
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
js 颜色选择器(兼容firefox)
2009/03/05 Javascript
JS去除iframe滚动条的方法
2015/04/01 Javascript
jQuery中通过ajax的get()函数读取页面的方法
2016/02/29 Javascript
Node.js实用代码段之获取Buffer对象字节长度
2016/03/17 Javascript
jQuery Mobile操作HTML5的常用函数总结
2016/05/17 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
2016/05/24 Javascript
基于Bootstrap仿淘宝分页控件实现代码
2016/11/07 Javascript
浅析Ajax语法
2016/12/05 Javascript
基于jQuery实现选项卡效果
2017/01/04 Javascript
JavaScript获取select中text值的方法
2017/02/13 Javascript
Vue 中mixin 的用法详解
2018/04/23 Javascript
react 兄弟组件如何调用对方的方法示例
2018/10/23 Javascript
Vuex mutitons和actions初使用详解
2019/03/04 Javascript
微信小程序实现的一键连接wifi功能示例
2019/04/24 Javascript
多个vue子路由文件自动化合并的方法
2019/09/03 Javascript
微信小程序关键字变色实现代码实例
2019/12/13 Javascript
javascript实现时钟动画
2020/12/03 Javascript
[41:12]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
Python实现冒泡排序的简单应用示例
2017/12/11 Python
python利用socketserver实现并发套接字功能
2018/01/26 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
python使用requests模块实现爬取电影天堂最新电影信息
2019/04/03 Python
python Django框架实现web端分页呈现数据
2019/10/31 Python
简单介绍django提供的加密算法
2019/12/18 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
python之MSE、MAE、RMSE的使用
2020/02/24 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
中学生差生评语
2014/01/30 职场文书
创先争优活动方案
2014/02/12 职场文书
学雷锋先进个人事迹
2014/05/26 职场文书
运动会口号16字
2014/06/07 职场文书
大学推普周活动总结
2015/05/07 职场文书