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


Posted in Javascript onJanuary 15, 2010

当我们让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 
}
Javascript 相关文章推荐
屏蔽F1~F12的快捷键的js函数
May 06 Javascript
zeroclipboard复制到剪切板的flash
Aug 04 Javascript
function foo的原型与prototype属性解惑
Nov 19 Javascript
Javascript:为input设置readOnly属性(示例讲解)
Dec 25 Javascript
浅谈在js传递参数中含加号(+)的处理方式
Oct 11 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
Jun 20 Javascript
Angular.js实现获取验证码倒计时60秒按钮的简单方法
Oct 18 Javascript
JavaScript实现精美个性导航栏筋斗云效果
Oct 29 Javascript
layui框架中layer父子页面交互的方法分析
Nov 15 Javascript
详解js动态获取浏览器或页面等容器的宽高
Mar 13 Javascript
layui实现多图片上传并限制上传的图片数量
Sep 26 Javascript
JavaScript实现指定数量的并发限制的示例代码
Mar 10 Javascript
javascript 不间断的图片滚动并可点击
Jan 15 #Javascript
Span元素的width属性无效果原因及解决方案
Jan 15 #Javascript
javascript实现的基于金山词霸网络翻译的代码
Jan 15 #Javascript
JQuery 引发两次$(document.ready)事件
Jan 15 #Javascript
用jQuery扩展自写的 UI导航
Jan 13 #Javascript
jQuery的一些特性和用法整理小结
Jan 13 #Javascript
JavaScript关于select的相关操作说明
Jan 13 #Javascript
You might like
PHP5 安装方法
2006/10/09 PHP
数据库相关问题
2006/10/09 PHP
php preg_replace替换实例讲解
2013/11/04 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
2014/10/15 PHP
YII2 实现多语言配置的方法分享
2017/01/11 PHP
PHP分页显示的方法分析【附PHP通用分页类】
2018/05/10 PHP
thinkPHP和onethink微信支付插件分享
2019/08/11 PHP
用js传递value默认值的示例代码
2014/09/11 Javascript
JavaScript中的this机制
2016/01/30 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
详解javascript设计模式三:代理模式
2019/03/25 Javascript
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
node.js域名解析实现方法详解
2019/11/05 Javascript
vue项目配置使用flow类型检查的步骤
2020/03/18 Javascript
[03:40]DOTA2抗疫特别篇《英雄年代》
2020/02/28 DOTA
使用Python标准库中的wave模块绘制乐谱的简单教程
2015/03/30 Python
windows下python连接oracle数据库
2017/06/07 Python
python特性语法之遍历、公共方法、引用
2018/08/08 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
使用Python进行体育竞技分析(预测球队成绩)
2019/05/16 Python
python实现动态数组的示例代码
2019/07/15 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
PyCharm下载和安装详细步骤
2019/12/17 Python
Python批量删除mysql中千万级大量数据的脚本分享
2020/12/03 Python
深入解析HTML5的IndexedDB索引数据库
2015/09/14 HTML / CSS
俄罗斯最大的香水和化妆品网上商店:Randewoo
2020/11/05 全球购物
日本语毕业生自荐信
2014/02/01 职场文书
市场营销求职信范文
2014/02/21 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
大学生国庆节65周年演讲稿范文
2014/09/25 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
Android自定义ScrollView实现阻尼回弹
2022/04/01 Java/Android
我的收音机情缘
2022/04/05 无线电