利用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 相关文章推荐
非常棒的10款jQuery 幻灯片插件
Jun 14 Javascript
JS结合bootstrap实现基本的增删改查功能
Jul 22 Javascript
AngularJS入门教程之链接与图片模板详解
Aug 19 Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
Sep 14 Javascript
RequireJs的使用详解
Feb 19 Javascript
vue-router 学习快速入门
Mar 01 Javascript
jQuery Validate表单验证插件实现代码
Jun 08 jQuery
Angular 2父子组件之间共享服务通信的实现
Jul 04 Javascript
jquery学习笔记之无new构建详解
Dec 07 jQuery
jQuery实现的电子时钟效果完整示例
Apr 28 jQuery
Vue 2.0 侦听器 watch属性代码详解
Jun 19 Javascript
Node.js API详解之 zlib模块用法分析
May 19 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
php 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
解析php类的注册与自动加载
2013/07/05 PHP
PHP获取Exif缩略图的方法
2015/07/13 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
基于jQuery实现响应式圆形图片轮播特效
2015/11/25 Javascript
Javascript之Date对象详解
2016/06/07 Javascript
Angular实现图片裁剪工具ngImgCrop实践
2017/08/17 Javascript
js删除数组中的元素delete和splice的区别详解
2018/02/03 Javascript
基于vue-cli vue-router搭建底部导航栏移动前端项目
2018/02/28 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
2018/05/22 Javascript
JavaScript数组方法的错误使用例子
2018/09/13 Javascript
Three.js实现简单3D房间布局
2018/12/30 Javascript
vue使用混入定义全局变量、函数、筛选器的实例代码
2019/07/29 Javascript
详细介绍Ruby中的正则表达式
2015/04/10 Python
python的else子句使用指南
2016/02/27 Python
Python抓取电影天堂电影信息的代码
2016/04/07 Python
python导入csv文件出现SyntaxError问题分析
2017/12/15 Python
在django中实现页面倒数几秒后自动跳转的例子
2019/08/16 Python
关于Numpy数据类型对象(dtype)使用详解
2019/11/27 Python
基于python图像处理API的使用示例
2020/04/03 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
python如何快速拼接字符串
2020/10/28 Python
简单掌握CSS3中resize属性的用法
2016/04/01 HTML / CSS
马来西亚综合购物网站:Lazada马来西亚
2018/06/05 全球购物
数据库专业英语
2012/11/30 面试题
如果重写了对象的equals()方法,需要考虑什么
2014/11/02 面试题
给物业的表扬信
2014/01/21 职场文书
提拔干部考察材料
2014/05/26 职场文书
感恩老师演讲稿600字
2014/08/28 职场文书
加强作风建设心得体会
2014/10/22 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
清明扫墓感想
2015/08/11 职场文书
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python