当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 利用onresize使得div可以随着屏幕大小而自适应的代码

Javascript
Javascript初学者实例教程(10):图像属性
FF与IE下javascript计算屏幕尺寸
可输入的下拉框
超强图片数量上传无限制
提高代码性能技巧谈—以创建千行表格为例
让插入到 innerHTML 中的 script 跑起来的实现代码
自动设为主页
脚本写的IE右键助手
[原创]checkbox实现全选的多种方法 不断更新
Div+CSS+JS树型菜单,可刷新
CSS+JS构建的图片查看器
如何实现iframe(嵌入式帧)的自适应高度
颜色渐变效果
一条一条新闻向上的滚动 不错
模拟抽奖
[原创]用srcElement实现添加效果
获取对象
带Checkbox的列表框
[原创]图片分页查看
[原创]手机号码本地检测

Javascript 中的 利用onresize使得div可以随着屏幕大小而自适应的代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-20   浏览: 501 ::
收藏到网摘: n/a

javascript 利用onresize使得div可以随着屏幕大小而自适应的代码 当我们让div居中时候,一般有两种方法,一种是固定左右宽度,也就是使用像素绝对定位;另一种是用百分比来相对定位,在这种两种方式下,绝对定位是不能让div随着屏幕而自适应的,而用百分比就可以,但是,是用百分比就会有一个新的问题,如果我们的页面中有这么一句
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
的时候,top的百分比将会失效,而删除这句话的时候,一切正常,都是不知道这句标准的声明为什么会带来如此的不便
针对这个问题,我使用的下面的方法来实现div的自适应
首先 我用的是绝对定位的方式,先设置好div的左右上下边距。在body中添加两个事件,
<body bgcolor="#666666" onresize="test()" onload="getwah()">
getwah()用来获取屏幕的大小和div的各个边距,并计算出它们的差
复制代码 代码如下:

var height,width,width_cha1,width_cha2;
function getwah()
{
if(document.documentElement && document.documentElement.clientWidth)
{d_width = document.documentElement.clientWidth;}
else if(document.body)
{d_width = document.body.clientWidth;}
width=parseInt(d_width);
width_cha1=width-parseInt(document.getElementById("backi").style.left)
width_cha2=width-parseInt(document.getElementById("massage_box").style.left)
}

当屏幕大小变化的时候(onresize)触发test()函数,该函数就是用户根据之前获得屏幕与边距的差值重新设置div的边距,这样就可以实现党屏幕的大小改变后,div的边距也会相应地改变,从而实现div可以随着屏幕大小的改变而自适应
复制代码 代码如下:

function test()
{
if(document.documentElement && document.documentElement.clientWidth)
{d_width = document.documentElement.clientWidth;}
else if(document.body)
{d_width = document.body.clientWidth;}
var now_left1=parseInt(d_width )-width_cha1;
var now_left2=parseInt(d_width )-width_cha2;
document.getElementById("backi").style.left=now_left1
document.getElementById("massage_box").style.left=now_left2
}