1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/dreamer365-FunLazy

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

FunLazy

Нативный JavaScript-разработанный облегчённый компонент для ленивой загрузки изображений.

Установка

  • unpkg cdn:
<script src="https://unpkg.com/funlazy"></script>
  • jsdelivr cdn:
<script src="https://cdn.jsdelivr.net/npm/funlazy"></script>
  • npm установка:
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, элементы с отложенной загрузкой не будут загружаться при выполнении любого из следующих условий:

  • сам элемент находится в скрытом состоянии;
  • у самого элемента opacity: 0;
  • элемент содержит предка, который находится в скрытом состоянии.

Тип данных: 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 )

Вы можете оставить комментарий после Вход в систему

Введение

Лёгкий компонент для отложенной загрузки изображений, разработанный на нативном JavaScript. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/dreamer365-FunLazy.git
git@api.gitlife.ru:oschina-mirror/dreamer365-FunLazy.git
oschina-mirror
dreamer365-FunLazy
dreamer365-FunLazy
master