janhuenermann/lazyfox

一个简单易用的Craft3插件,可以让图片的懒加载变得轻松简单。

安装: 5

依赖项: 0

建议者: 0

安全性: 0

星标: 4

关注者: 3

分支: 0

开放问题: 1

类型:craft-plugin

dev-master 2018-09-17 09:44 UTC

This package is not auto-updated.

Last update: 2024-09-23 21:59:55 UTC


README

LazyFox for Craft CMS 3.x

一个简单易用的插件,可以让图片的懒加载变得轻松简单。图标归功于Noun Project上的ester barbato的Fox。

关键特性

  • 懒加载图片,使网页更加响应和流畅
  • source-sets:LazyFox会生成你图片的多个不同尺寸,并让浏览器仅加载所需尺寸的图片,避免加载比视口可以渲染的更大的图片,从而加快加载速度
  • 在图片加载时显示嵌入到HTML代码中的占位符
  • 易于使用的Craft和Twig原生API
  • 使用最新的HTML5和JS API,如MutationObserver、ResizeObserver和Intersection API。包含polyfills。
  • 轻量级:7kB JavaScript,<1kB CSS
  • noscript回退
  • Imager支持。当可用时使用Imager进行缩放。

有了LazyFox,文档跳跃已成为过去式!

Screenshot

要求

此插件需要Craft CMS 3.0.0-beta.23或更高版本。

安装

虽然建议从Craft插件商店安装LazyFox,但如果您愿意,可以按照以下说明手动安装。

  1. 打开您的终端并转到您的Craft项目

     cd /path/to/project
    
  2. 然后让Composer加载插件

     composer require janhuenermann/lazyfox
    
  3. 在控制面板中,转到设置→插件,并为lazyfox点击“安装”按钮。

使用lazyfox

要使图片懒加载,只需在Twig中使用image函数。

image(asset)

创建一个启用懒加载的图片标签。

参数

asset:一个craft\elements\Asset实例

示例:

<div class=my-images>
{% for myImage in entry.myImageField %}
{{ image(myImage) }}
{% endfor %}
</div>

注意:请确保如果缓存结果,仍然包括LazyFox所需的资产(JavaScript & CSS)。您可以在Twig中使用{% do view.registerAssetBundle('janhuenermann\lazyfox\assetbundles\Lazyfox\LazyfoxAsset') %}来做到这一点。

配置lazyfox

在设置页面上,您可以选择不同的懒加载样式,并设置源集(srcset属性)中包含的图片尺寸。

代码输出

LazyFox加载图片后,生成的HTML结构将类似于以下内容。

<picture class="lazyfox --no-progress --transition --pixelated">
    <img 
    	sizes="480px" 
    	srcset="/images/_900x800_crop_center-center_none/a.jpg 900w, /images/_1800x1600_crop_center-center_none/a.jpg 1800w" 
    	src="/images/_1800x1600_crop_center-center_none/a.jpg">
</picture>

如您所见,它生成了一个HTML5 picture元素。在这种情况下,img的sizes属性由LazyFox自动设置,以便加载最佳匹配的图片。

在CSS中设置懒加载图片的样式

由于生成的代码与普通的img标签略有不同,因此有时很难以期望的方式设置图片样式。但是,使用LazyFox则非常简单。只需针对picture标签内的图片进行任何基于img的属性操作,如object-fit、object-position等。如果您想调整大小或与元素边框框有关的内容,只需针对picture元素本身即可。

默认情况下,LazyFox将picture标签宽度设置为100%。但这很容易改变。请注意,建议使用百分比以确保在不同设备上保证响应性。

如何创建一个不拉伸的懒加载正方形图片的基本示例

main .lazyfox {
	width: 300px;
	height: 300px;
}

main .lazyfox img {
	object-fit: cover;
}

插件由Jan Hünermann开发。

图标授权:由ester barbato提供的Noun Project中的Fox图标