Javascript 图像加载不正确

Javascript 图像加载不正确,javascript,html,ios,canvas,Javascript,Html,Ios,Canvas,我正在开发一个可以在IOS设备上运行的HTML和js应用程序。在这个应用程序中,我使用了很多图像,并使用src设置函数中这些图像的路径。在这个函数完成后,我调用另一个函数,在这里我正在绘制画布,问题是所有这些图像没有正确加载,一些图像的宽度仍然为0。如何确保在调用下一个函数之前正确加载所有图像 感谢您可以使用image onload事件在映像完全加载时触发代码运行;下面是一个例子。在我设置image.src之后,当映像在某处被完全加载时,连接到image.onload的处理程序中的代码将运行 v

我正在开发一个可以在IOS设备上运行的HTML和js应用程序。在这个应用程序中,我使用了很多图像,并使用src设置函数中这些图像的路径。在这个函数完成后,我调用另一个函数,在这里我正在绘制画布,问题是所有这些图像没有正确加载,一些图像的宽度仍然为0。如何确保在调用下一个函数之前正确加载所有图像


感谢

您可以使用image onload事件在映像完全加载时触发代码运行;下面是一个例子。在我设置image.src之后,当映像在某处被完全加载时,连接到image.onload的处理程序中的代码将运行

var p = {    
    display: function(imageUrl) {
        var availableDimensions = this.getAvailableDimensions();
        $("#loadingImg").css("display", "none");
        var canvas = document.getElementById("myCanvas");
        var image = new Image();
        image.onload = function() {
            canvas.width = image.width;
            canvas.height = image.height;
            canvas.getContext("2d").drawImage(image, 0, 0, image.width, image.height);
            canvas.style.display = "inline";
        };
        image.src = imageUrl + "&width=" + availableDimensions.width + "&height=" + availableDimensions.height + "&negative=false";
    }
}

您可以使用image onload事件在映像完全加载时触发代码运行;下面是一个例子。在我设置image.src之后,当映像在某处被完全加载时,连接到image.onload的处理程序中的代码将运行

var p = {    
    display: function(imageUrl) {
        var availableDimensions = this.getAvailableDimensions();
        $("#loadingImg").css("display", "none");
        var canvas = document.getElementById("myCanvas");
        var image = new Image();
        image.onload = function() {
            canvas.width = image.width;
            canvas.height = image.height;
            canvas.getContext("2d").drawImage(image, 0, 0, image.width, image.height);
            canvas.style.display = "inline";
        };
        image.src = imageUrl + "&width=" + availableDimensions.width + "&height=" + availableDimensions.height + "&negative=false";
    }
}
这将确保加载所有图像

这将确保加载所有图像


请在提问之前进行更多搜索

等待图像完成加载很容易:

var img = new Image();   // Create new img element
img.onload = function(){
  // execute drawImage statements here
};
img.src = 'myImage.png'; // Set source path

在尝试绘制之前,请确保已为每个图像触发onload事件。如果您有多个图像,并且不想使某些内容变得复杂,那么有一些库可以为您执行此操作,例如。

请在提问之前进行更多搜索

等待图像完成加载很容易:

var img = new Image();   // Create new img element
img.onload = function(){
  // execute drawImage statements here
};
img.src = 'myImage.png'; // Set source path

在尝试绘制之前,请确保已为每个图像触发onload事件。如果您有多个图像,并且不想使某些事情变得复杂,那么有一些库可以为您执行此操作,例如。

我们需要查看您的相关代码。可能的重复我们需要查看您的相关代码。可能的重复如果您可以为一个图像执行此操作,那么您肯定可以为多个图像执行此操作,不是吗,如果你能为一张图片做这件事,你肯定能为许多图片做这件事,不是吗?这救了我!!!在连续两个小时努力找出问题所在之后!起初它不起作用,但我在onload函数中添加了图像加载后的所有代码。这听起来很基本,我是第一次使用Js,但是谢谢!这救了我!!!在连续两个小时努力找出问题所在之后!起初它不起作用,但我在onload函数中添加了图像加载后的所有代码。这听起来很基本,我是第一次使用Js,但是谢谢!