让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 相关文章推荐
editable.js 基于jquery的表格的编辑插件
Oct 24 Javascript
Prototype源码浅析 Enumerable部分之each方法
Jan 16 Javascript
JavaScript中的Primitive对象封装介绍
Dec 31 Javascript
jQuery蓝色风格滑动导航栏代码分享
Aug 19 Javascript
javascript新闻跑马灯实例代码
Jul 29 Javascript
js+canvas简单绘制圆圈的方法
Jan 28 Javascript
javascript编程开发中取色器及封装$函数用法示例
Aug 09 Javascript
基于JavaScript实现抽奖系统
Jan 16 Javascript
Vue点击切换颜色的方法
Sep 13 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
Apr 24 Javascript
layui输入框中只允许输入整数的实现方法
Sep 18 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
Sep 20 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基础学习笔记
2007/03/18 PHP
php 日期时间处理函数小结
2009/12/18 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
2014/12/24 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
2016/02/14 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
2016/09/01 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
2007/12/23更新创意无限,简单实用(javascript log)
2007/12/24 Javascript
jquery struts 验证唯一标识(公用方法)
2013/03/27 Javascript
Js控制弹窗实现在任意分辨率下居中显示
2013/08/01 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
jQuery网页右侧广告跟随滚动代码分享
2020/04/20 Javascript
JavaScript实现瀑布流布局
2020/06/28 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
vue页面离开后执行函数的实例
2018/03/13 Javascript
JS实现选项卡效果的代码实例
2019/05/20 Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
2019/08/12 Javascript
解决layui的table插件无法多层级获取json数据的问题
2019/09/19 Javascript
在Heroku云平台上部署Python的Django框架的教程
2015/04/20 Python
python通过邮件服务器端口发送邮件的方法
2015/04/30 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
2019/08/27 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
2020/01/09 Python
Pyinstaller 打包发布经验总结
2020/06/02 Python
python如何随机生成高强度密码
2020/08/19 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
英国第一的市场和亚马逊替代品:OnBuy
2019/03/16 全球购物
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
幼儿园大班新学期寄语
2014/01/18 职场文书
教师业务学习材料
2014/12/16 职场文书
实习科室评语
2015/01/04 职场文书
市场部岗位职责
2015/02/12 职场文书
只用40行Python代码就能写出pdf转word小工具
2021/05/31 Python
Golang中channel的原理解读(推荐)
2021/10/16 Golang