利用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 验证上传图片大小[客户端]
Aug 01 Javascript
Jquery弹出窗口插件 LeanModal的使用方法
Mar 10 Javascript
For循环中分号隔开的3部分的执行顺序探讨
May 27 Javascript
JavaScript中连接操作Oracle数据库实例
Apr 02 Javascript
javascript文件加载管理简单实现方法
Jul 25 Javascript
JS实现仿微博可关闭弹出层效果
Sep 21 Javascript
javascript学习笔记整理(概述、变量、数据类型简介)
Oct 25 Javascript
整理Javascript基础入门学习笔记
Nov 29 Javascript
如何利用AngularJS打造一款简单Web应用
Dec 05 Javascript
以BootStrap Tab为例写一个前端组件
Jul 25 Javascript
vue递归组件实战之简单树形控件实例代码
Aug 27 Javascript
利用webpack理解CommonJS和ES Modules的差异区别
Jun 16 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
把77A收信机改造成收音机
2021/03/02 无线电
我的论坛源代码(七)
2006/10/09 PHP
php中数组首字符过滤功能代码
2012/07/31 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
从父页面读取和操作iframe中内容方法
2009/07/25 Javascript
javascript 嵌套的函数(作用域链)
2010/03/15 Javascript
JavaScript中的几个关键概念的理解-原型链的构建
2011/05/12 Javascript
javascript中的void运算符语法及使用介绍
2013/03/10 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
2014/11/24 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
2015/08/24 Javascript
Jquery+ajax+JAVA(servlet)实现下拉菜单异步取值
2016/03/23 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
2016/07/19 Javascript
Javascript获取background属性中url的值
2016/10/17 Javascript
angular2中使用第三方js库的实例
2018/02/26 Javascript
NodeJS实现不可逆加密与密码密文保存的方法
2018/03/16 NodeJs
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
js数组去重的方法总结
2019/01/18 Javascript
如何为你的JS项目添加智能提示与类型检查详解
2019/03/12 Javascript
前端js中的事件循环eventloop机制详解
2019/05/15 Javascript
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
Python Matplotlib库入门指南
2015/05/18 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
对python中的控制条件、循环和跳出详解
2019/06/24 Python
Python bytes string相互转换过程解析
2020/03/05 Python
Python生成器实现简单&quot;生产者消费者&quot;模型代码实例
2020/03/27 Python
美国殿堂级滑板、冲浪、滑雪服装品牌:Volcom(钻石)
2017/04/20 全球购物
华为的Java面试题
2014/03/07 面试题
实习生工作证明范本
2014/09/14 职场文书
2015年度护士个人工作总结
2015/04/09 职场文书
法制工作总结2015
2015/07/23 职场文书
python批量更改目录名/文件名的方法
2021/04/18 Python
Pygame Event事件模块的详细示例
2021/11/17 Python
python实现会员管理系统
2022/03/18 Python
html原生table实现合并单元格以及合并表头的示例代码
2023/05/07 HTML / CSS