您应该使用$('#myDiv').parent().height()
而不是window.innerHeight
,因为如果您的#myDiv
元素被另一个元素包裹,您的方法可能无法正常工作。
你也可以将你的代码封装成一个jQuery plugin
,像这样:
jQuery.fn.verticalAlign = function ()
{
return this
.css("margin-top",($(this).parent().height() - $(this).height())/2 + 'px' )
};
然后你可以像这样使用它:
$('#myDiv').verticalAlign();
is it possible that some device support JS but doesn't support jQuery ?
不,所有支持正确版本的设备JS
must sopport jQuery
,因为核心jQuery
是纯的JS
但是如果你想在浏览器屏幕中垂直对齐你的元素,你可以使用以下代替:
jQuery.fn.verticalAlignScreen = function ()
{
return this
.css("position", "absolute")
.css("top", Math.max(0, (($(window).height() - $(this).outerHeight()) / 2) + $(window).scrollTop()) + "px");
};