我遇到了一个问题,我正在使用jQuery Cycle插件来中心图像。我找到了this解决方案,但它没有处理单个图像(并不总是> 2个图像),所以我编写了自己的一些代码,这似乎有效,除了它有时不会不要从div的高度减去图像的高度,所以最终得到的是310px的边距。
var $image_cnt = $("#images > img").size();
if($image_cnt < 2) {
var $single_img = $("#images").children(':first-child');
var h = $single_img.height();
$single_img.css({
marginTop: (620 - h) / 2,
});
$(".next").css("display","none");
$(".prev").css("display","none");
}
我没有多少使用jQuery,只是想知道我是否错过了一些简单的东西,或者写错了什么,这就是为什么marginTop不能玩得很好。
答案 0 :(得分:3)
你应该在
中运行它$(window).load(function {
为了加载图像,在$(document).ready(function {
中运行它可能会在图像准备好之前执行,如果不是,则对于那些尚未.complete
的图像,它们的高度将为0。 / p>
答案 1 :(得分:0)
不应该这一行:
var $image_cnt = $("#images > img").size();
是:
var $image_cnt = $("#images > img").length();
奥斯陆:
marginTop: (620 - h) / 2,
应该是:
marginTop: (620 - h) / 2+'px',
还有一件事你可能想要检查每个图像是否设置了高度...并且高度以像素为单位有时可能是百分比或其他单位。
希望它有所帮助...