我正在尝试获取使用css使用百分比值缩放的图像元素的尺寸(宽度)。
以下是代码:
<div id="wrapper">
<ul id="gallery_content">
<li><img src="images/thumbs/1.jpg"/></li>
<li><img src="images/thumbs/2.jpg"/></li>
<li><img src="images/thumbs/3.jpg"/></li>
<li><img src="images/thumbs/4.jpg"/></li>
<li><img src="images/thumbs/5.jpg"/></li>
<li><img src="images/thumbs/6.jpg"/></li>
<li><img src="images/thumbs/7.jpg"/></li>
<li><img src="images/thumbs/8.jpg"/></li>
<li><img src="images/thumbs/9.jpg"/></li>
<li><img src="images/thumbs/2.jpg"/></li>
<li><img src="images/thumbs/3.jpg"/></li>
<li><img src="images/thumbs/4.jpg"/></li>
<li><img src="images/thumbs/5.jpg"/></li>
<li><img src="images/thumbs/6.jpg"/></li>
<li><img src="images/thumbs/7.jpg"/></li>
<li><img src="images/thumbs/8.jpg"/></li>
<li><img src="images/thumbs/9.jpg"/></li>
<li><img src="images/thumbs/2.jpg"/></li>
<li><img src="images/thumbs/3.jpg"/></li>
</ul>
</div>
这里是css:
ul#gallery_content li{ background:#FFF; list-style:none; display:inline; float:left; margin:0; height: 100%;}
ul#gallery_content li img { width:auto; height:100%; width:auto; }
我正在尝试获取包装器元素的实际宽度(所有图像宽度的总和)。 在
中访问它们时$(document).ready(
galItems = $('#gallery_content').children().children();
galSize = 0;
$.each(galItems, function(index, item){
galSize += parseInt(item.width)
});
)
它获取所有图像元素但未获得计算的宽度。 有没有机会用jquery获取图像的实际渲染宽度?
答案 0 :(得分:0)
您是否尝试过将.width()作为函数?
galSize += parseInt(item.width());
问题解决后编辑:
事实证明问题实际上是在页面之前执行了javascript并且图像已经完全加载。
通过将$(document).ready()更改为$(window).load()来解决这个问题。
答案 1 :(得分:0)
在ready()
事件上你应该传递一个函数,所以将代码包装在一个函数中,如下所示:
$(document).ready(function(){
var galItems = $('#gallery_content').children().children();
var galSize = 0;
$.each(galItems, function(index, item){
galSize += +(item.width)
});
});
使用+
符号代替parseInt
将字符串转换为数字,速度更快。