让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 相关文章推荐
Ucren Virtual Desktop V2.0
Nov 07 Javascript
select 控制网页内容隐藏于显示的实现代码
May 25 Javascript
Javascript在IE和FireFox中的不同表现简析
Dec 03 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
Mar 19 Javascript
node.js中的fs.mkdirSync方法使用说明
Dec 17 Javascript
vue.js 获取select中的value实例
Mar 01 Javascript
每天学点Vue源码之vm.$mount挂载函数
Mar 11 Javascript
js实现的在本地预览图片功能示例
Nov 09 Javascript
Vue结合路由配置递归实现菜单栏功能
Jun 16 Javascript
js实现随机圆与矩形功能
Oct 29 Javascript
Vue实现boradcast和dispatch的示例
Nov 13 Javascript
JavaScript代码实现简单计算器
Dec 27 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
使用PHP导出Word文档的原理和实例
2013/10/21 PHP
Yii2框架可逆加密简单实现方法
2017/08/25 PHP
捕获关闭窗口的脚本
2009/01/10 Javascript
Javascript 匿名函数及其代码模式原理
2010/03/19 Javascript
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
JavaScript 参数中的数组展开 [译]
2012/09/21 Javascript
document节点对象的获取方式示例介绍
2013/12/24 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
2014/02/28 Javascript
javascript弹出拖动窗口
2015/08/11 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
2015/10/14 Javascript
百度地图给map添加右键菜单(判断是否为marker)
2016/03/04 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
JS实现禁止高频率连续点击的方法【基于ES6语法】
2017/04/25 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
2018/04/10 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
jquery+php后台实现省市区联动功能示例
2019/05/23 jQuery
详解vue-cli项目开发/生产环境代理实现跨域请求
2019/07/23 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
Vue router传递参数并解决刷新页面参数丢失问题
2020/12/02 Vue.js
[05:05]第三天的dota2
2013/07/29 DOTA
儿童学习python的一些小技巧
2018/05/27 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
2019/06/28 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
2019/08/05 Python
python numpy 矩阵堆叠实例
2020/01/17 Python
css3中transition属性详解
2014/09/02 HTML / CSS
使用CSS3和Checkbox实现JQuery的一些效果
2015/08/03 HTML / CSS
HTML5实现动画效果的方式汇总
2016/02/29 HTML / CSS
Alba Moda德国网上商店:意大利时尚女装销售
2016/11/14 全球购物
2014年学校党建工作汇报材料
2014/11/02 职场文书
优秀党员先进事迹材料
2014/12/18 职场文书
个人承诺书格式范文
2015/04/29 职场文书
乔迁新居祝福语
2019/11/04 职场文书
如何理解Vue前后端数据交互与显示
2021/05/10 Vue.js
Python如何导出导入所有依赖包详解
2021/06/08 Python
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis