让html元素随浏览器的大小自适应垂直居中的实现方法


Posted in Javascript onOctober 12, 2016

表格可以实现td中的元素垂直居中显示,但是前提条件必须定义td的高才可行。

但是很多时候会用到元素跟随浏览器的大小垂直居中,如在制作展示官网、活动展示网等等的时候。

问题:

实现div垂直居中并在缩放浏览器尺寸的时候仍然居中。

解决方案:

1、浏览器可视区域的高度-元素的高度/2 = 元素距离浏览器可视区域顶部的距离。
(bodyHeight ? divHeight)/2

2、浏览器可视区域如果小于元素的高度,即元素距离浏览器可视区域顶部的距离为零。

3、onresize()当浏览器的尺寸改变的时候触发事件。使用onresize()每次改变的时候,重新计算一下元素到顶部的距离。

实现代码:

function divMiddle(){
	var dairyBox = document.getElementById('dairyBox');
	var divHeight = dairyBox.offsetHeight;
	var bodyHeight = document.body.offsetHeight;
	if(bodyHeight > divHeight){
		var endHeight = parseInt(bodyHeight - divHeight)/2;
		dairyBox.style.marginTop = endHeight + "px";
	}else{
		dairyBox.style.marginTop = 0;
		dairyBox.style.top = 0;
	}
}
            
if(document.all){
	window.attachEvent('onload',divMiddle);
}else{
	window.addEventListener('load',divMiddle,false);
}
             
var resizeTimer = null;
window.onresize = function(){
	resizeTimer = resizeTimer?null:setTimeout(divMiddle,0);
}

注意事项:

根据浏览器的不同onresize被触发的次数都不相同,因此处理的时候要格外小心。

以上就是小编为大家带来的让html元素随浏览器的大小自适应垂直居中的实现方法全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
wordpress之js库集合研究介绍
Aug 17 Javascript
jquery实用代码片段集合
Aug 12 Javascript
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
Sep 13 Javascript
Javascript中valueOf与toString区别浅析
Mar 19 Javascript
thinkphp中常用的系统常量和系统变量
Mar 05 Javascript
使用jQuery操作HTML的table表格的实例解析
Mar 13 Javascript
RequireJs的使用详解
Feb 19 Javascript
JS实现前端缓存的方法
Sep 21 Javascript
用 js 写一个 js 解释器过程详解
Aug 02 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
Aug 27 Javascript
Vue双向绑定实现原理与方法详解
May 07 Javascript
react中的DOM操作实现
Jun 30 Javascript
Angularjs手动解析表达式($parse)
Oct 12 #Javascript
js利用clipboardData实现截屏粘贴功能
Oct 12 #Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
Oct 12 #Javascript
jQuery给指定的table动态添加删除行的操作方法
Oct 12 #Javascript
详解Javascript中的原型OOP
Oct 12 #Javascript
浅析BootStrap Treeview的简单使用
Oct 12 #Javascript
jquery自定义表单验证插件
Oct 12 #Javascript
You might like
自己做矿石收音机
2021/03/02 无线电
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
微信 getAccessToken方法详解及实例
2016/11/23 PHP
jQuery 前的按键判断代码
2010/03/19 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
javascript使用location.search的示例
2013/11/05 Javascript
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
jQuery表单域选择器用法分析
2015/02/10 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
localStorage实现便签小程序
2016/11/28 Javascript
bootstrap-table组合表头的实现方法
2017/09/07 Javascript
angularjs实现猜大小功能
2017/10/23 Javascript
Javascript中prototype与__proto__的关系详解
2018/03/11 Javascript
node.js实现为PDF添加水印的示例代码
2018/12/05 Javascript
详解vue项目中调用百度地图API使用方法
2019/04/25 Javascript
js+html实现点名系统功能
2019/11/05 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
jquery实现简单拖拽效果
2020/07/20 jQuery
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
Python对两个有序列表进行合并和排序的例子
2014/06/13 Python
编写Python的web框架中的Model的教程
2015/04/29 Python
在Python中处理时间之clock()方法的使用
2015/05/22 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
python 猴子补丁(monkey patch)
2019/06/26 Python
python实现定时发送邮件到指定邮箱
2020/12/23 Python
联想瑞士官方网站:Lenovo Switzerland
2017/11/19 全球购物
幼儿园国庆节活动方案
2014/02/01 职场文书
党的群众路线教育实践活动心得体会900字
2014/03/07 职场文书
学校党员对照检查材料
2014/08/28 职场文书
合伙经营协议书范本
2014/09/13 职场文书
不同意离婚答辩状
2015/05/22 职场文书
加强党性修养心得体会
2016/01/21 职场文书
PyCharm 安装与使用配置教程(windows,mac通用)
2021/05/12 Python
MySQL系列之二 多实例配置
2021/07/02 MySQL
MySQL学习必备条件查询数据
2022/03/25 MySQL