如何解决使用jQuery垂直对齐元素通用解
| 我正在尝试为元素的垂直对齐提供一个跨浏览器解决方案(该文档已被记录了很多次,所以我不确定该在哪里归因于此)。除了使用元素包含图像的Chrome时,它的效果都很好。这是因为Chrome浏览器确定图片的高度为0,因为我认为它尚未加载。如何修改以下jQuery来解决此问题? 谢谢!$(document).ready(function() {
$(\".valign\").vAlign();
});
(function ($) {
$.fn.vAlign = function() {
return this.each(function(i){
var ah = $(this).height();
var ph = $(this).parent().height();
var mh = Math.ceil((ph - ah) / 2);
if (mh < 0) {
mh=0;
}
$(this).css(\'margin-top\',mh);
});
};
})(jQuery);
解决方法
只需将
$(document).ready()
换成$(window).load()
。直到所有参考图像都加载后,它才会执行。
, 您需要先加载目标图像,然后使用回调来欺骗高度计算。所以:
...return this.each(function(i){
$(\'targetImagePlaceholder\').load(\'image/url.jpg\',function(){
var ah = $this.height():
...
应该为你工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。