每个项目的高度有时不计算
Each item height sometimes not being calculated
if($('body').hasClass('single') && ($overlayPanel) ) {
$overlayPanel.each(function(){
$(this).height($(this).prev().height());
})
}
似乎50%的时间图像的高度没有及时计算之前,它的分配创建overlayPanel的高度(只是结果在高度0px)。是否有一个更强大的方式来写这个,使overlayPanel将始终具有prev()的高度?
你应该证明
- 当这个函数被调用时,所有的图像都被加载(
$(document).ready()
) - (或者图片的大小由css设置)
- dom中每个$overlayPanel的前一个标签总是img标签
如果每个元素都与前一个元素具有相同的高度,那么它们都与第一个元素具有相同的高度,因此至少肯定有更简单的方法来编写它。
对于图像,您必须等待图像加载才能获得高度,您可以使用窗口。Onload,或者监听第一个图像的Onload事件,然后将其他图像的高度设置为相同的高度
if( $('body').hasClass('single') && $overlayPanel.length ) {
var img = new Image();
img.onload = function() {
$overlayPanel.css('height', $(this).height())
}
img.src = $overlayPanel.first().prop('src');
if (img.complete) img.onload();
}
相关文章:
- 如何计算每个元素's的高度,并将这些值用作函数中的变量
- 使用jquery计算包含另一个带边距元素的元素的高度
- 如何计算缩放后画布的新高度和宽度
- 获取计算高度-Javascript-而不是jQuery
- Chrome和Firefox之间的高度计算不同
- 无法从 AngularJS 中的元素计算偏移高度
- 展开预览(计算高度:函数)
- Div 不会自动计算高度
- 新偏移量更新字体大小后不计算高度
- 根据点击量或数字计算高度
- 调整大小时重新计算高度
- 在TextArea的自动大小上调整计算高度,理想地工作吗?(jsfiddle - updated)
- 为什么$(someElement).height()从来没有正确地为我计算高度
- 元素的大小需要重新计算高度,因为JSON数据被过滤
- 位置相对内容计算高度
- 沙狐不正确地计算高度
- 调整大小和计算高度- bug
- 绝对定位元素的计算高度
- 如何使用jquery计算高度
- 弹出窗口计算高度