jQuery中心图像

时间:2010-03-20 08:23:38

标签: jquery css

我遇到了一个问题,我正在使用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不能玩得很好。

2 个答案:

答案 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',

还有一件事你可能想要检查每个图像是否设置了高度...并且高度以像素为单位有时可能是百分比或其他单位。

希望它有所帮助...