通过JavaScript使Div居中并随网页大小改变而改变

 更新时间:2013年06月24日 10:36:57   作者:  
自己的页面太难看了,要居中没居中,要颜色没颜色,但是无论是怎么样都得使登录的框居中吧,下面与大家分享下通过JavaScript可以简单的使Div在页面上居中,随着网页大小的改变做出相应的改变
在使用Java做后台的时候,都会做到登录的页面,但是自己的页面太难看了,要居中没居中,要颜色没颜色,但是无论是怎么样都得使登录的框居中吧!以前的想法是通过CSS+Div使div居中,但是现在的想法变了,通过JavaScript可以简单的使Div在页面上居中,随着网页大小的改变做出相应的改变。而且只要明白了居中的原理轻而易举的就可以实现了。
先看一下居中的原理吧!
先看一张图。
 
从图中看到了什么?可以看到红色的框居中了,为什么会居中呢?通过观察可以发现红框的上下的蓝色的间距线是一样长的,这样可以确保了垂直居中,红框的左右的绿色间距线也是一样长的,这样可以确保了水平居中。
但是怎么使上下的间距相等呢?左右的间距相等呢?
在看一张图:
 
假设当前网页的高为350px,宽为400px,而红框的高为150px,宽为200px,我们可以发现网页的高减去红框元素的高得到200px像素,而这200px像素正是上下边距的总和,上下边距各得到了100px,同理,左右也是一样的。
有没有感觉到什么?
如果我们知道了网页元素的高或宽,减去元素的高或宽,然后在除以2,就得到了上下左右边距的距离。我们通常给元素的定位是怎么定的呢?不都是通过top和left的坐标定的吗?那么现在红框的坐标是什么呢?
再看一张图:
 
红色框的坐标是蓝色的上线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这个框架,那么代码就更简单了。
转载请指明出处。

相关文章

  • mock.js实现模拟生成假数据功能示例

    mock.js实现模拟生成假数据功能示例

    这篇文章主要介绍了mock.js实现模拟生成假数据功能,结合实例形式分析了mock.js插件生成模拟数据的相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • php+js实现倒计时功能

    php+js实现倒计时功能

    由PHP传入JS处理的时间戳我说怎么老是对不上号呢,原来JS时间戳为13位,包含3位毫秒的,而PHP只有10位不包含毫秒的。恩,基础还是要补补的
    2014-06-06
  • 基于JS正则表达式实现模板数据动态渲染(实现思路详解)

    基于JS正则表达式实现模板数据动态渲染(实现思路详解)

    这篇文章主要介绍了基于JS正则表达式实现模板数据动态渲染 ,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • 几个高效,简洁的字符处理函数

    几个高效,简洁的字符处理函数

    几个高效,简洁的字符处理函数...
    2007-04-04
  • 前端如何使用Cesium加载三维模型详细攻略

    前端如何使用Cesium加载三维模型详细攻略

    三维模型数据格式种类多样,常见的有DAE、OBJ、STL、3DS MAX、CLM、IFC等数据格式,下面这篇文章主要给大家介绍了关于前端如何使用Cesium加载三维模型的相关资料,需要的朋友可以参考下
    2024-05-05
  • IE浏览器下PNG相关功能

    IE浏览器下PNG相关功能

    本文给大家汇总了一下png在IE浏览器下出现的各种问题的解决方法,十分的实用,有需要的小伙伴可以参考下。
    2015-07-07
  • js实现控制整个页面滚动条的位置

    js实现控制整个页面滚动条的位置

    这篇文章主要介绍了js实现控制整个页面滚动条的位置,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • JavaScript从数组中删除指定值元素的方法

    JavaScript从数组中删除指定值元素的方法

    这篇文章主要介绍了JavaScript从数组中删除指定值元素的方法,实例分析了两种常用的javascript操作数组指定元素的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 火狐和ie下获取javascript 获取event的方法(推荐)

    火狐和ie下获取javascript 获取event的方法(推荐)

    下面小编就为大家带来一篇火狐和ie下获取javascript 获取event的方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • angularjs模态框的使用代码实例

    angularjs模态框的使用代码实例

    这篇文章主要介绍了angularjs模态框的使用代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12

最新评论