FunLazy
Нативный JavaScript-разработанный облегчённый компонент для ленивой загрузки изображений.
Установка
<script src="https://unpkg.com/funlazy"></script>
<script src="https://cdn.jsdelivr.net/npm/funlazy"></script>
npm i funlazy -S
const FunLazy = require( "funlazy" );
Использование
<img data-funlazy="1.jpg" width="500" height="309">
<img data-funlazy="2.jpg" width="500" height="309">
<img data-funlazy="3.jpg" width="500" height="309">
<script>
FunLazy();
</script>
Примечание: если вы используете этот компонент в проекте Vue, вам нужно вызвать функцию FunLazy в хуке mounted (vue2) или onMounted (vue3).
Пользовательские настройки
FunLazy( {
placeholder: "thumb.jpg",
effect: "fadeIn"
} );
Возвращаемые настройки
const opt = FunLazy( {
placeholder: "thumb.jpg",
effect: "fadeIn"
} );
// В соответствии с переданными пользовательскими настройками
// и настройками по умолчанию объединяем их и возвращаем результат объединения
console.log( opt );
Автоматическое обнаружение изменений в элементах для ленивой загрузки
<button>Добавить изображение</button>
<div id="img-box">
<img data-funlazy="1.jpg" width="500" height="309">
<img data-funlazy="2.jpg" width="500" height="309">
<img data-funlazy="3.jpg" width="500" height="309">
</div>
<script>
const opt = FunLazy( {
autoCheckChange: true
} );
// Устанавливаем autoCheckChange: true,
// новые изображения будут автоматически анализироваться для ленивой загрузки
const target = document.getElementById( "img-box" );
document.querySelector( "button" ).addEventListener( "click", () => {
target.insertAdjacentHTML( "beforeend", '<img data-funlazy="new.jpg" width="500" height="309">' );
} )
</script>
Обработка URL-адресов изображений перед загрузкой
<img data-funlazy="1.jpg" width="500" height="309">
<img data-funlazy="2.jpg" width="500" height="309">
<img data-funlazy="3.jpg" width="500" height="309">
<script>
// beforeLazy атрибут можно использовать для окончательной обработки URL-адреса изображения перед его ленивой загрузкой, что эквивалентно созданию слоя перехвата
// Можно легко выполнить пакетную обработку URL-адреса перед загрузкой
FunLazy( {
beforeLazy: src => `${ src }?img-id=${ Math.random().toString( 36 ).slice( 2, 10 ) }`
} );
</script>
Использование заданного изображения в качестве заполнителя при неудачной загрузке
<img data-funlazy="1.jpg" width="500" height="309">
<img data-funlazy="2.jpg" width="500" height="309">
<img data-funlazy="3.jpg" width="500" height="309">
<script>
// useErrorImagePlaceholder атрибут можно использовать, чтобы показать заданное изображение в случае неудачной загрузки
// - Установка значения true использует встроенное серое изображение в качестве заполнителя
// - Передача URL-адреса позволяет настроить изображение-заполнитель
FunLazy( {
useErrorImagePlaceholder: true
// Или:
// useErrorImagePlaceholder: "img/error.jpg"
} );
</script>
Параметры конфигурации
Параметр | Описание | Тип | Значение по умолчанию |
---|---|---|---|
container | Селектор целевого контейнера, по умолчанию на основе body, если передано window, document, «html», то будет преобразовано в «body» | String | body |
effect | Эффект отображения изображения, возможные значения: show, fadeIn | String | show |
placeholder | Изображение-заполнитель | String | base64-кодированное серое изображение |
threshold | Пороговое значение, единица измерения: px | Number | 0 |
width | Ширина изображения, передача числа автоматически устанавливает px, также можно передать процентное значение, также можно установить через css | Number / String | — |
height | Высота изображения, передача числа автоматически устанавливает px, также можно передать процентное значение, также можно установить через css | Number / String | — |
eventType | Указывает событие мыши, которое запускает загрузку изображения, возможные значения: click, dblclick, mouseover | String | — |
axis | Направление прокрутки контейнера, возможные значения: x, y | String | y |
onSuccess | Функция обратного вызова, которая выполняется при успешной загрузке изображения, параметры обратного вызова: 1. Элемент, в котором успешно загружено изображение 2. Адрес успешно загруженного изображения |
Function | Пустая функция |
onError | Функция обратного вызова, которая выполняется при неудачной загрузке изображения, параметры обратного вызова: 1. Элемент, где не удалось загрузить изображение 2. Неудачный адрес изображения |
Function | — |
Пустая функция.
strictLazyMode (v2.1.4 новое)
Строгий режим отложенной загрузки. Когда значение этого свойства равно true, элементы с отложенной загрузкой не будут загружаться при выполнении любого из следующих условий:
Тип данных: Boolean.
Значение: true.
beforeLazy (v2.1.0 новое)
Функция, выполняемая перед отложенной загрузкой. Параметр функции — это адрес изображения (можно использовать для окончательной обработки адреса изображения перед его загрузкой и возврата обработанного адреса изображения).
Тип данных: Function.
Значение: пустая функция.
autoCheckChange (v2.1.0 новое)
Автоматически обнаруживает изменения элементов, которые должны быть загружены лениво, в целевом элементе и автоматически анализирует их.
Тип данных: Boolean.
Значение: false.
useErrorImagePlaceholder (v2.1.1 новое)
При сбое загрузки изображения используется указанное изображение для отображения заполнителя (можно использовать встроенное серое изображение или пользовательское изображение).
Тип данных: Boolean / String.
Значение: false.
MIT License.
Ссылка: https://gitee.com/dreamer365/FunLazy/blob/master/LICENSE.
Chrome 80+
Edge 90+
Safari 13+
Firefox 90+
IE не поддерживается
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )