我有一个非常不寻常的问题,我几个小时都无法解决。我有一个带图像的幻灯片。我想将这些图像放在幻灯片div中,使用“减去边距左方法”,但第一个图像SOMETIMES无法获得宽度值,因此margin-left属性为0,这意味着第一个的一半图像悬挂在div之外。
这是我写的jQuery代码(这段代码在我的文档末尾):
$('.slider img').each(function() {
var iw = $(this).width();
ih = $(this).height();
$(this).css({
'left' : '50%',
'margin-left' : '-'+iw/2+'px'
});
});
任何想法我的代码有什么问题? (抱歉我的英语不好)。
答案 0 :(得分:0)
可能是因为图像尚未加载,因此一种解决方案是使用加载回调来进行计算
$('.slider img').load(function () {
var iw = $(this).width();
var ih = $(this).height();
$(this).css({
'left': '50%',
'margin-left': '-' + iw / 2 + 'px'
});
}).filter(function () {
//if the element is already loaded manually trigger the event
return this.complete
}).trigger('load');
答案 1 :(得分:0)
或者DOM未加载完成,或者<string.h>
的不可见元素被截获代码。
如果您尝试获取display: none
元素的宽度和高度,建议您放置display:none
和display:block
。
有了这些信息,我无法为您提供更多帮助