npm 包 gulp-image-set-plus 使用教程

阅读时长 5 分钟读完

在制作响应式网站时,图片的适配问题经常是非常头疼的一个问题。一般而言,我们可以使用 CSS 的 background-image 属性来控制不同分辨率设备下的图片显示效果。但是,当我们需要实现图片在 HTML 中的 src 属性上的适配时,就要使用到 srcset 属性了。

srcset 是一个 HTML 属性,用来传递多个可选的图片文件路径给浏览器,让其根据不同的设备特性来合理的选择最合适的图片。然而,为了实现 srcset 适配,我们需要手动针对不同分辨率设备生成不同大小的图片,这样会占用很多时间,并且会产生很多重复劳动。

幸运的是,我们可以使用 gulp-image-set-plus 这个 npm 包来解决这个问题。gulp-image-set-plus 可以自动根据需要生成不同分辨率下的图片,并输出 <img> 标签中 srcset 属性所需要的内容。在本文中,我们将使用 gulp-image-set-plus 来实现网页图片适配问题。

安装

首先,我们需要在项目目录下通过以下代码,安装 gulp-image-set-plus

同时,为了实现图片的裁切和调用,我们还需要安装以下依赖包:

使用

准备工作

安装完毕后,我们需要在项目根目录下,创建一个 gulpfile.js 文件,用于编写 gulp 任务。在 gulpfile.js 文件中,我们还要同时导入 gulpgulp-plumbergulp-imagegulp-image-set-plus

生成图片并调用

假设我们在项目中有一个名为 images 的文件夹,这个文件夹下的所有图片都需要被适配为 srcset 属性。我们可以通过以下代码来执行任务:

-- -------------------- ---- -------
---------------- -------- -- -
  ------ ------------------------------------
    ----------------
    -------------
      --------- -----
      -------- ------
      ---------- -----
      --------------- ------
      -------- -----
      -------- ------
      --------- -----
      ----- -----
      ------ ----
    ---
    ----------------
      ------ --- ---- -- ---
      ---------- ------ ------
      ------------ -
        -
          ----- --------
          ------ ----
          ----- ---
        --
        -
          ----- ---------
          ------ -----
          ----- ---
        --
        -
          ----- --------
          ------ -----
          ----- ---
        -
      --
      -------- -----
      -------------- ----
      ---------- ---
    ---
    --------------------------------
---

这段代码会执行以下主要的步骤:

  1. 选取 images 目录中所有 .png.jpg.jpeg 格式的图片文件。
  2. 通过 gulp-image 插件将图片进行优化。
  3. 使用 gulp-image-set-plus 生成不同分辨率的图片,并输出 srcset 属性所需的文件内容。
  4. 将生成的文件输出到 dist/images 目录中。

输出代码示例

经过 gulp-image-set-plus 的处理后,我们会得到如下的代码示例:

这个代码示例中,我们选取了一张名为 cat.png 的图片,并设置了图片的适配规则。src 属性指向原始的图片路径,srcset 属性指向不同分辨率下的图片路径,sizes 属性则表示屏幕的不同适配规则。

总结

通过 gulp-image-set-plus,我们可以很方便地实现网页图片适配问题。当然,除了 srcset 属性以外,我们还可以使用 picture 标签来制定更加复杂的图片适配规则,但这就需要更多的代码工作。希望这篇文章能够帮助到你,感谢您的阅读!

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005684781e8991b448e4542

纠错
反馈