手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >通过JavaScript使Div居中并随网页大小改变而改变
通过JavaScript使Div居中并随网页大小改变而改变
摘要:在使用Java做后台的时候,都会做到登录的页面,但是自己的页面太难看了,要居中没居中,要颜色没颜色,但是无论是怎么样都得使登录的框居中吧!以...

在使用Java做后台的时候,都会做到登录的页面,但是自己的页面太难看了,要居中没居中,要颜色没颜色,但是无论是怎么样都得使登录的框居中吧!以前的想法是通过CSS+Div使div居中,但是现在的想法变了,通过JavaScript可以简单的使Div在页面上居中,随着网页大小的改变做出相应的改变。而且只要明白了居中的原理轻而易举的就可以实现了。

先看一下居中的原理吧!

先看一张图。

1

从图中看到了什么?可以看到红色的框居中了,为什么会居中呢?通过观察可以发现红框的上下的蓝色的间距线是一样长的,这样可以确保了垂直居中,红框的左右的绿色间距线也是一样长的,这样可以确保了水平居中。

但是怎么使上下的间距相等呢?左右的间距相等呢?

在看一张图:

2

假设当前网页的高为350px,宽为400px,而红框的高为150px,宽为200px,我们可以发现网页的高减去红框元素的高得到200px像素,而这200px像素正是上下边距的总和,上下边距各得到了100px,同理,左右也是一样的。

有没有感觉到什么?

如果我们知道了网页元素的高或宽,减去元素的高或宽,然后在除以2,就得到了上下左右边距的距离。我们通常给元素的定位是怎么定的呢?不都是通过top和left的坐标定的吗?那么现在红框的坐标是什么呢?

再看一张图:

3

红色框的坐标是蓝色的上线100px,和绿色的左线100px,即left和top的值,这两个值不是算出来的吗?

可以总结一个公式:

居中的元素的top =(网页高 –元素的高)/ 2;

居中的元素的left= (网页宽 –元素的宽) /2;

转化为JavaScript的语法为:

top = (document.body.clientHeight - element.offsetHeight)/2;

left = (document.body.clientWidth - element.offsetWidth)/2

获取到top和left的坐标不就居中了。

以下是居中的完整代码:

这里要注意几个问题,要设置元素的position的属性为absolute,即绝对定位,然后添加两个事件onload和onresize,要加上px的字符串,offsetHeight是获取元素自身的高,offsetWidth是获取元素自身的宽,这就是当网页加载时和改变大小时div都会居中。不过这种做法是居中的元素和网页的居中,如果想要一个元素在另一个元素的内部居中的话,原理是一样的。我们只需要将网页的宽和高的代码改为另一个元素的宽和高的代码就行了。另一个元素的宽和高可以通过获取到当前元素的parent元素的高和宽。这样也是可以居中的。如果用jquery这个框架,那么代码就更简单了。

转载请指明出处。

【通过JavaScript使Div居中并随网页大小改变而改变】相关文章:

JavaScript实现列表分页功能特效

JavaScript正则表达式之multiline属性的应用

详解JavaScript中的表单验证

JavaScript中的blink()方法的使用

javascript实现可拖动变色并关闭层窗口实例

谈一谈javascript中继承的多种方式

javascript实现查找数组中最大值方法汇总

JavaScript实现文本框中默认显示背景图片在获得焦点后消失的方法

Jquery使用css方法改变样式实例

Javascript中For In语句用法实例

精品推荐
分类导航