让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 相关文章推荐
基于node.js的快速开发透明代理
Dec 25 Javascript
JS的参数传递示例介绍
Feb 08 Javascript
jQuery中filter()方法用法实例
Jan 06 Javascript
分享我对JS插件开发的一些感想和心得
Feb 04 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
Jul 01 Javascript
微信小程序 自定义消息提示框
Aug 06 Javascript
bootstrap datetimepicker控件位置异常的解决方法
Nov 23 Javascript
微信小程序实现底部导航
Nov 05 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
Oct 21 Javascript
JavaScript实现弹出窗口效果
Dec 09 Javascript
vue el-upload上传文件的示例代码
Dec 21 Vue.js
如何用vue实现网页截图你知道吗
Nov 17 Vue.js
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自动识别文件编码并转换为UTF-8的方法
2014/06/12 PHP
php实现数据库的增删改查
2017/02/26 PHP
实例化php类时传参的方法分析
2020/06/05 PHP
imagettftext() 失效,不起作用
2021/03/09 PHP
jquery学习总结(超级详细)
2014/09/04 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
2015/09/27 Javascript
jQuery多条件筛选如何实现
2015/11/04 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
js弹性势能动画之抛物线运动实例详解
2017/07/27 Javascript
JS 实现百度搜索功能
2018/02/01 Javascript
浅谈react性能优化的方法
2018/09/05 Javascript
对angularJs中2种自定义服务的实例讲解
2018/09/30 Javascript
vue 图片裁剪上传组件的实现
2020/11/12 Javascript
vue打开其他项目页面并传入数据详解
2020/11/25 Vue.js
详解 Python中LEGB和闭包及装饰器
2017/08/03 Python
python实现手机通讯录搜索功能
2018/02/22 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
Python单向链表和双向链表原理与用法实例详解
2018/08/31 Python
python感知机实现代码
2019/01/18 Python
pandas计数 value_counts()的使用
2019/06/24 Python
Python为何不能用可变对象作为默认参数的值
2019/07/01 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
2019/08/28 Python
python科学计算之scipy——optimize用法
2019/11/25 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
荟萃全球保健品:维他购
2018/05/09 全球购物
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
网页设计个人找工作求职信
2013/11/28 职场文书
年度评优评先方案
2014/06/03 职场文书
企业法人代表证明书
2014/09/27 职场文书
计算机实训报告总结
2014/11/05 职场文书
考研导师推荐信范文
2015/03/27 职场文书
2016年党员学习廉政准则心得体会
2016/01/20 职场文书
java解析XML详解
2021/07/09 Java/Android
Canvas绘制像素风图片的示例代码
2021/09/25 HTML / CSS
Redis基本数据类型哈希Hash常用操作命令
2022/06/01 Redis