将所有图像的 HTML::image 标准替换为懒加载

安装: 4

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 1

分支: 1

类型:laravel

dev-master 2016-02-07 09:00 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:04:01 UTC


README

此包更改了正常的 HTMLBuilder 包图像方法,以便输出可以以懒加载方式格式化的 HTML。

安装

$ composer install samjoyce777/lazy --save

在 config.php 文件中,您需要插入服务提供者

$ \samjoyce777\lazy\LazyServiceProvider::class,

然后更改 HTML 门面到新的,这个类只是扩展了它,因此您可以完全使用其他方法,只是图像被覆盖了。

$ 'HTML' => samjoyce777\lazy\LazyFacade::class,

您将需要获取 JavaScript 文件,目前它位于公共目录中。然后您需要包含或连接它。

$ php artisan vendor:publish --tag=public --force

这将添加配置文件到您的应用程序配置中。

$ php artisan vendor:publish --tag=config

未能正确获取包路由,因此将此路由复制到您的路由文件中

$ \Route::get('ajax-lazy-image', ['as' => 'ajax-lazy-image', 'uses' => '\samjoyce777\lazy\ImageController@ajax']);

示例用法

正常的 HTML::image 现在将 src 标签更改为配置中的默认占位图,然后通过 JavaScript 进行更改

  {!!HTML::image('cushion.jpg', 'cushion picture')!!}

您可能希望某些项目使用不同的占位符,例如产品或头像等,如果您在配置中设置了一个类占位符,它将加载该占位符图像

  {!!HTML::image('cushion.jpg', 'cushion picture', ['class' => 'product'])!!}

如果您需要为一次性覆盖占位符,可以通过设置占位符属性来实现

  {!!HTML::image('cushion.jpg', 'cushion picture', ['class' => 'product', 'placeholder' => 'images/large-placeholder.png'])!!}

配置中设置了两种懒加载类型。'basic' 会简单地将所有占位符图像更改为预期图像。除非您有很多图像,否则不确定这对加载速度有多有效。'ajax' 方法将屏幕大小和元素大小发送到上述路由,您的控制器可以发送适当大小的图像,在包含的 ImageController 中有一个使用我的 Album 包的示例。

这仍处于工作状态。