有没有一种方法可以检测一行何时随着浮动左LI的UL而改变
Is there a way to detect when a row changed with a UL of float-lefted LIs?
以下是我的产品示例列表:http://imgur.com/7IGthIa
我有一个在document ready上运行的函数,它在每个列表中循环,并调整img周围跨度的高度,这样整个列表中的空间就统一了。
我想知道的是,有没有一种方法可以让它检测"行"何时发生变化,从而使跨度在第一行上显示为原样(因为它们的大小基于前两行,但在第二行,对于单个条目,跨度是该图像的高度?
该函数对LI元素的高度也做同样的事情,如果有可行的解决方案,我可能会将其调整为每行的大小。
这是它运行的计算高度的函数,如果它有任何用处的话:
if ( jQuery('.product_list').length ) {
var tallest = 0;
var tallest_img = 0;
jQuery('.product_list li').each( function() {
if ( jQuery(this).height() > tallest ) { tallest = jQuery(this).height(); }
if ( jQuery(this).children('a').children('span').children('img').height() > tallest_img ) {
tallest_img = jQuery(this).children('a').children('span').children('img').height();
}
});
jQuery('.product_list li').height( tallest );
jQuery('.product_list li span').height( tallest_img );
}
谢谢!
您可以通过检查元素的offset().top
来检测行何时更改。
由于您要在span
上设置高度,我假设它们具有display: inline-block
的样式。(不能设置内联元素的高度。)
由于span
是li
的孩子,你不必担心设置li
的高度(除非我误解了你的问题)。
该代码遍历span
,根据每行中最高的img
,每行赋予它们相等的高度:
function sizeSpans() {
var spans= $('ul span'),
tallest,
top= $(spans[0]).offset().top;
spans.css('height', '');
tallest= $(spans[0]).height();
spans.each(function(idx1) {
if($(this).offset().top === top) {
tallest= Math.max(tallest, $(this).height());
spans.each(function(idx2) {
if(idx2 <= idx1 &&
$(this).offset().top === top
) {
$(this).css('height', tallest);
}
});
}
else {
tallest= $(this).height(),
top= $(this).offset().top;
}
});
} //sizeSpans
您可以将其添加到resize
处理程序中:
$(window).resize(sizeSpans);
工作Fiddle
单击顶部的"大小跨度"按钮。调整框架大小以查看大小的重新调整。
相关文章:
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 更改li标记文本的Javascript
- 完全可链接的li元素
- jQuery:当屏幕大小改变时,如何更改默认图像和悬停图像
- 使用jquery动态创建ul-li
- tiltSlider播放/暂停视频元素(如果li有当前类)
- 使用下拉列表筛选列表(ul>li)
- 有没有一种方法可以检测一行何时随着浮动左LI的UL而改变
- 当我用鼠标点击身体区域时,那个li标签是如何改变颜色的
- 改变& lt; li>自动css
- 如何通过悬停一个li元素来改变body背景图像
- CSS选择器问题,如何改变父li的字体颜色时,子ul的焦点
- 改变li高度会移动父高度
- 如何改变li元素的背景颜色
- 在不重新加载的情况下改变Li中的Dom元素
- 在Javascript中改变li的背景颜色
- 当& lt; li>改变我们的Div类
- 如何动态地添加一个类到li项目,并使用javascript和css改变它的背景颜色