我基本上使用 jQuery 循环来处理横幅图像,其中我有一系列大小的图像。我试图让图像垂直对齐到 LI 的高度。现在我得到了一些大致有效的东西,但方式很糟糕。
你可以在这里查看我的工作:
我的 HTML:
<div id="slider">
<ul class="slidah">
<li><img src="img/slide1.jpg" alt=""></li>
<li><img src="img/slide1.jpg" alt=""></li>
<li><img src="img/slide1.jpg" alt=""></li>
<li><img src="img/slide1.jpg" alt=""></li>
</ul>
</div>
我的 jQuery:
(function ($) {
$.fn.vAlign = function(fn) {
return this.each(
function(i){
var ah = $(this).height();
var ph = $(this).parent().height();
var mh = Math.ceil((ph-ah) / 2);
$(this).css('margin-top', mh);
});
};
})(jQuery);
$('.slidah').cycle({
after: function(){
$(".slidah li img").vAlign();
}
});
我的 CSS:
#slider{
width: 100%;
height: 200px;
overflow: hidden;
}
.slidah{
width: 100%;
height: 200px;
}
.slidah li{
width: 100%;
height: 200px;
}
现在您可以看到,垂直对齐功能确实有效,但它会在循环发生后触发。我试过before
了,但这没有用。我需要一种方法在循环发生的同时重新触发事件?