在页面加载时使用JavaScript在父容器中垂直居中子div是不是设置位置?

我正在使用JavaScript将一个子div垂直居中于一个流体容器中。 我基本上通过计算父容器的高度和子div的高度来实现这一点。 然后我绝对根据高度在父div的中心定位子div。 我遇到的问题是,当页面加载时,它不会设置子div的位置。 我创建了一个函数,并在调整窗口大小时调用它,以便在视口更改时动态重新计算。 如何在页面加载时初始设置此位置?

var homepageLead = function () { var lead = $('.lead'), message = $('.message'), lead_height = lead.height(), message_height = message.height(), lead_center = .5 * lead_height, message_center = .5 * message_height, center = (lead_center - message_center); message.css('bottom',center); } homepageLead(); $(window).resize(function () { homepageLead(); });

试试这个小提琴: http : //jsfiddle.net/nRRn6/

用过css:

 html, body { height:100%; } .lead { width:100%; height:100%; background:red; position:relative; } .message { width:120px; height:200px; background:yellow; position:absolute; /* <---required*/ left:0; /* <---required*/ bottom:0; /* <---required*/ } 

使用html:

 

使用jQuery:

 var homepageLead = function () { var lead = $('.lead'), message = $('.message'), lead_height = lead.height(), message_height = message.height(), lead_center = .5 * lead_height, message_center = .5 * message_height, center = (lead_center - message_center); return message.css('bottom', center); }; $(function () { $(window).resize(function () { homepageLead(); }).resize(); });