js判断图片加载完成后获取图片实际宽高的方法

想要获取图片元素的实际宽高,必须先确保该图片已经加载完成。否则获取到的宽高可能是错误的。下面是获取图片实际宽高的步骤和方法:

步骤

  1. 创建一个 Image 实例。

  2. 设置 Image 实例的 src 属性为图片文件路径。

  3. 监听 Image 实例的 load 事件。当该事件触发后,则表明图片已经加载完成。

  4. load 事件回调函数中获取图片的实际宽高。

示例 1

const img = new Image();
img.src = 'https://example.com/image.jpg';

img.addEventListener('load', (e) => {
  console.log('图片加载完成');
  console.log('宽度:', e.target.width);
  console.log('高度:', e.target.height);
});

以上代码将创建一个 Image 实例并将其 src 属性设置为 'https://example.com/image.jpg'。在 load 事件回调函数中,我们可以通过 event.target 属性来获取到 Image 实例本身,从而获取到图片的实际宽高。

示例 2

const img = new Image();
img.src = 'https://example.com/image.jpg';

function getImageSize(imgUrl) {
  return new Promise((resolve, reject) => {
    const img = new Image();
    img.src = imgUrl;
    img.addEventListener('load', () => {
      resolve({
        width: img.width,
        height: img.height,
      });
    });
    img.addEventListener('error', () => {
      reject('图片加载失败');
    });
  });
}

getImageSize('https://example.com/image.jpg')
  .then((size) => {
    console.log(`宽度:${size.width},高度:${size.height}`);
  })
  .catch((e) => {
    console.error(e);
  });

以上代码定义了一个名为 getImageSize 的函数,并将其设置为 Promise。当调用 getImageSize 函数时,该函数将创建一个 Image 实例并将其 src 属性设置为传入的图片路径。当图片加载完成后,该函数将返回一个包含图片实际宽高的对象。在需要使用图片实际宽高的地方,可以通过调用 getImageSize 函数并使用 .then() 方法来获取到该对象。同时,该函数还处理了一些异常情况,当图片加载失败时,将会返回一个错误信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js判断图片加载完成后获取图片实际宽高的方法 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • jQWidgets jqxGrid columnsresize属性

    以下是关于“jQWidgets jqxGrid columnsresize属性”的完整攻略,包含两个示例说明: 简介 jqxGrid 控件的 columnsresize 属性用于启用或禁用表列的调整大小功能。 完整攻略 以下是 jqxGrid 控件 columnsresize 属性的完整攻略: 定义 resize 在 jqxGrid 控件中,可以使用 col…

    jquery 2023年5月11日
    00
  • jQWidgets jqxTree uncheckAll()方法

    jQWidgets jqxTree uncheckAll() 方法 jqxTree 是 jQWidgets 提供的一个树形组件,它可以展示层级结构的数据支持多种互。jqxTree 提供了 uncheckAll() 方法,用于取消形组件中所有节点的选中状态。 uncheckAll() 方法 uncheckAll() 方法用于取消树形组件中所有节点的选中状态。该…

    jquery 2023年5月11日
    00
  • 纯js三维数组实现三级联动效果

    首先,要实现三级联动效果,我们需要先了解什么是三维数组。三维数组就是一个数组中包含着多个二维数组,而每个二维数组中又包含着多个一维数组,这样一层层嵌套下去,就形成了三维数组。在实现三级联动效果时,我们可以使用三维数组来实现。 下面是一个简单的示例代码,实现了一个三维数组,并打印出其中的一个元素: var arr = [[[1, 2], [3, 4]], [[…

    jquery 2023年5月28日
    00
  • 使用jQuery创建HTML元素的最有效方法

    创建HTML元素是网站开发中的常见任务,jQuery提供了一种快捷便捷的方法来完成这个任务。以下是在使用jQuery创建HTML元素时最有效的方法的详细攻略: 1. 使用jQuery的HTML()方法 在网页中使用jQuery的HTML()方法是一种快速创建HTML元素的有效方法。该方法将一个HTML字符串添加到所选元素中,可以使用该方法来直接创建新的HTM…

    jquery 2023年5月13日
    00
  • jQuery+AJAX实现无刷新下拉加载更多

    以下是详细讲解“jQuery+AJAX实现无刷新下拉加载更多”的完整攻略。 什么是无刷新下拉加载更多? 通常在一些文章列表,图片列表等需要分页展示的地方,用户需要点击翻页或者下拉刷新才能看到更多的内容,这样体验不太友好,产生了“无刷新下拉加载更多”的需求。在用户下拉到页面底部时,系统自动异步请求后台获取更多的数据,然后自动将数据插入到当前页面中,实现不刷新页…

    jquery 2023年5月27日
    00
  • JavaScript实现简单精致的图片左右无缝滚动效果

    下面是“JavaScript实现简单精致的图片左右无缝滚动效果”的完整攻略。 准备工作 首先在HTML中创建一个包含所有滚动图片的容器。比如: <div class="scroll-container"> <img src="image1.jpg" class="scroll-image&q…

    jquery 2023年5月27日
    00
  • jQWidgets jqxDraw circle()方法

    以下是关于“jQWidgets jqxDraw circle() 方法”的完整攻略,包含两个示例说明: 简介 jqxDraw 控件的 circle() 方法用于创建一个圆形元素。该方法可以用于绘图中创建圆形元素。 完整攻略 下面是 jqx 控件 circle() 方法的完整攻略: 创建圆形元素 var circle = draw.circle(50); 在上…

    jquery 2023年5月10日
    00
  • jquery.cookie用法详细解析

    下面为您详细讲解“jquery.cookie用法详细解析”的完整攻略。 什么是jquery.cookie? jquery.cookie是一个jquery插件,它可以让我们方便地读写COOKIE。 如何使用jquery.cookie? 1. 引入jquery.cookie.js 首先,我们需要引入jquery.cookie.js库。在HTML中引入jquery…

    jquery 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部