samjoyce777 / lazy
将所有图像的 HTML::image 标准替换为懒加载
dev-master
2016-02-07 09:00 UTC
Requires
- illuminate/html: 5.0.*@dev
- laravel/framework: 5.*
Requires (Dev)
- phpunit/phpunit: ~4.0
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 包的示例。