image naturalWidth返回零......就是这样,为什么?
var newimage = new Image();
newimage.src = 'retouche-hr' + newlinkimage.substring(14,17) + '-a.jpg';
var width = newimage.naturalWidth;
alert (width);
帮助,我不知道为什么!
***路径很好,图片出现了!
答案 0 :(得分:39)
我猜是因为你不是在等待图片加载 - 试试这个:
var newimage = new Image();
newimage.src = 'retouche-hr' + newlinkimage.substring(14,17) + '-a.jpg';
newimage.onload = function()
{
var width = this.naturalWidth;
alert(width);
}
答案 1 :(得分:1)
这是最终工作代码......以防有人想知道。这都是等待图像加载的问题!
<script type="text/javascript">
$(function() {
$("#thumb").jCarouselLite({
btnNext: "#down",
btnPrev: "#up",
vertical: true,
visible: 4
});
$("#thumb li img").click(function() {
var newlinkimage = $(this).attr("src");
newlinkimage = 'retouche-hr' + newlinkimage.substring(14,17);
$('#hr').remove();
var newimage = new Image();
newimage.src = newlinkimage + '-a.jpg';
newimage.onload = function()
{
var width = (newimage.width);
var height = (newimage.height);
$('#contentfull').append('<div id="hr"> </div>');
$("#hr").attr("width", width).attr("height", height);
$("#hr").addClass('hrviewer');
//alert('a');
$("#hr").append('<div id="avant"> <img alt="before" src="' + newlinkimage +'-a.jpg"></div>');
$("#hr").append('<div id="apres"> <img alt="after" src="' + newlinkimage +'-b.jpg"></div>');
//alert('b');
$("#avant img").attr("src", newlinkimage + '-a.jpg').attr("width", width).attr("height", height);
$("#apres img").attr("src", newlinkimage + '-b.jpg').attr("width", width).attr("height", height);
$("#apres img").load(function(){$("#hr").beforeAfter({animateIntro:true});});
}
})
});
</script>
答案 2 :(得分:0)
IE中不支持naturalWidth和naturalHeight属性,因此请尝试this fix。
答案 3 :(得分:0)
对我来说,以下作品......
$('<img src="mypathtotheimage.png"/>').load(function () {
if (!isNotIe8) {
// ie8 need a fix
var image = new Image(); // or document.createElement('img')
var width, height;
image.onload = function () {
width = this.width;
height = this.height;
};
image.src = $(this).attr("src");
} else {
// everythings fine here ....
// this.naturalWidth / this.naturalHeight;
}