利用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 相关文章推荐
对javascript的一点点认识总结《javascript高级程序设计》读书笔记
Nov 30 Javascript
实例说明为什么不要行内使用javascript
Apr 18 Javascript
jQuery实用函数用法总结
Aug 29 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
Jan 05 Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
Feb 22 Javascript
移动端刮刮乐的实现方式(js+HTML5)
Mar 23 Javascript
AngularJS自定义表单验证功能实例详解
Aug 24 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
May 22 Javascript
JS学习笔记之原型链和利用原型实现继承详解
May 29 Javascript
怎么使用javascript深度拷贝一个数组
Jun 06 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
Aug 01 Javascript
Postman无法正常返回结果问题解决
Aug 28 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
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
零基础学JavaScript最新动画教程+iso光盘下载
2008/01/22 Javascript
javascript实时显示北京时间的方法
2015/03/12 Javascript
jquery选择器简述
2015/08/31 Javascript
基于JavaScript实现自动更新倒计时效果
2016/12/19 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
2016/12/20 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
2017/04/25 Javascript
简单谈谈js的数据类型
2017/09/25 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
2018/03/28 jQuery
Vue 进阶之路(三)
2019/04/18 Javascript
详解mpvue实现对苹果X安全区域的适配
2019/07/31 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
2019/11/25 Javascript
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
2020/09/27 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
Python从MP3文件获取id3的方法
2015/06/15 Python
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
Python正则表达式经典入门教程
2017/05/22 Python
详解Django+uwsgi+Nginx上线最佳实战
2019/03/14 Python
通过Turtle库在Python中绘制一个鼠年福鼠
2020/02/03 Python
Python MySQL 日期时间格式化作为参数的操作
2020/03/02 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
2020/05/20 Python
使用Keras预训练模型ResNet50进行图像分类方式
2020/05/23 Python
Python如何获取文件指定行的内容
2020/05/27 Python
Python 如何在字符串中插入变量
2020/08/01 Python
CSS3媒体查询Media Queries基础学习教程
2016/02/29 HTML / CSS
美体小铺英国官网:The Body Shop英国
2017/01/24 全球购物
2014新年寄语
2014/01/20 职场文书
激情洋溢的毕业生就业求职信
2014/03/15 职场文书
员工工作表现评语
2014/04/26 职场文书
建设工程授权委托书
2014/09/22 职场文书
情侣之间的道歉短信
2015/05/12 职场文书
2016年感恩节寄语
2015/12/07 职场文书
2016年社区综治宣传月活动总结
2016/03/16 职场文书
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS
Python PIL按比例裁剪图片
2022/05/11 Python