Jquery 将图像尺寸百分比转换为像素
我在Jquery 将图像尺寸百分比转换为像素,jquery,html,css,Jquery,Html,Css,我在div元素中有一个img元素,如下所示: <div class='img-container col-md-12' id='box'> <img src='/img/sample.png' id='srcImg' style='width:100%'> </div> 其输出为:宽度:100,高度:0 当我在浏览器控制台窗口中尝试相同的操作时,它会给出正确的结果 正确的方法是什么?应用该脚本时,图像似乎尚未加载。尝试将其放入$(document.
div
元素中有一个img
元素,如下所示:
<div class='img-container col-md-12' id='box'>
<img src='/img/sample.png' id='srcImg' style='width:100%'>
</div>
其输出为:宽度:100,高度:0
当我在浏览器控制台窗口中尝试相同的操作时,它会给出正确的结果
正确的方法是什么?应用该脚本时,图像似乎尚未加载。尝试将其放入
$(document.ready(function(){…})
中,或者在图像加载后使用其他方式运行它(如果图像加载得更晚)。应用该脚本时,图像似乎尚未加载。尝试将其放入$(document.ready(function(){…})
中,或者在图像加载后使用其他方式运行它(如果图像加载得更晚)。将高度/宽度检查包装在img.onload=function(){//code}
中。图像总是异步加载
var img = document.createElement("img");
img.src = utilCanvas.toDataURL();
img.id = "imgId";
img.style.visibility = "hidden";
document.body.appendChild(img);
img.onload = function () {
// code -> use imgId to grab the image..
}
将高度/宽度检查包装在
img.onload=function(){//code}
内。图像总是异步加载
var img = document.createElement("img");
img.src = utilCanvas.toDataURL();
img.id = "imgId";
img.style.visibility = "hidden";
document.body.appendChild(img);
img.onload = function () {
// code -> use imgId to grab the image..
}
我是incorrect@JoeWarner无问题:)请检查是否
('#tempImg')。clientWidth代码>works@flamelite这支笔显示它记录了正确的值。您的包含元素有高度吗?@moghya clientWidth给出了未定义的值incorrect@JoeWarner无问题:)请检查是否('#tempImg')。clientWidth代码>works@flamelite这支笔显示它记录了正确的值。您的包含元素是否具有高度?@moghya clientWidth正在给出未定义的图像division元素中的图像是动态加载的,我将更新我的问题。division元素中的图像是动态加载的,我将更新我的问题。这将给出图像的自然尺寸。否。它返回元素的正确大小,您的问题现在似乎在代码的其他地方。这个答案是正确的,因为在加载图像之前,您无法检查图像的尺寸,简单的操作流程。。。你现在的问题是,你可能想把它作为一个隐藏元素添加,但这与你的问题完全不同。我没有隐藏新的img元素。确切地说。。。那是你的问题。它需要作为HTML元素呈现,而不仅仅是在代码中。在渲染之前,您不会知道渲染的大小。你似乎想跳过很多重要的步骤。是的,没错@Adriani6。我试图找到一个在渲染后进行回调的方法,但失败了,你知道怎么做吗?这将给出图像的自然尺寸。否。它返回元素的正确大小,您的问题现在似乎在代码的其他地方。这个答案是正确的,因为在加载图像之前,您无法检查图像的尺寸,简单的操作流程。。。你现在的问题是,你可能想把它作为一个隐藏元素添加,但这与你的问题完全不同。我没有隐藏新的img元素。确切地说。。。那是你的问题。它需要作为HTML元素呈现,而不仅仅是在代码中。在渲染之前,您不会知道渲染的大小。你似乎想跳过很多重要的步骤。是的,没错@Adriani6。我试着在渲染后找到一个调用,但是失败了,你知道怎么做吗。