Действия видимости

Элемент может выполнять действия без участия пользователя: когда он появляется на экране и когда исчезает с него. Такие действия задаются в свойствах visibility_actions и disappear_actions. Кроме собственных параметров, они поддерживают основные параметры обычных действий: url, typed, log_id, is_enabled, payload, scope_id, referer и download_callbacks.

Действия при появлении

Элементы visibility срабатывают, когда элемент показывается на экране.

{
  "visibility_actions": [
    {
      "log_id":"content_01_visibility",
      "visibility_percentage": 100,
      "visibility_duration": 1000,
      "url": "div-action://none"
    }
  ]
}

Параметр

Описание

visibility_percentage

Процент видимой площади элемента.

visibility_duration

Минимальное время его видимости.

log_id

Опциональный идентификатор для логирования действия видимости.

По умолчанию visibility_percentage равно 50, а visibility_duration — 800 мс. Параметр log_limit ограничивает, сколько раз действие срабатывает и логируется: по умолчанию — 1, то есть действие выполняется один раз. При значении 0 ограничение снимается.

Примечание

Старые версии клиентов DivKit игнорируют действия видимости без log_id. Если карточку получают и такие клиенты, указывайте log_id.

Действия при исчезновении

Элементы disappear срабатывают, когда элемент пропадает из зоны видимости.

{
  "disappear_actions": [
    {
      "log_id": "content_01_disappear",
      "visibility_percentage": 0,
      "disappear_duration": 800,
      "url": "div-action://none"
    }
  ]
}

Параметр

Описание

visibility_percentage

Размер видимой части элемента в процентах, при котором срабатывает действие. Значение по умолчанию — 0.

disappear_duration

Время в миллисекундах, в течение которого элемент должен находиться вне зоны видимости, чтобы действие сработало. Значение по умолчанию — 800.

log_id

Идентификатор для логирования действия.

log_limit

Ограничение на количество срабатываний и логирований действия. Значение по умолчанию — 1, при значении 0 ограничение снимается.

Узнать больше

Вы можете обсуждать интересующие вас темы в сообществе пользователей DivKit в Telegram: https://t.me/divkit_community_ru.

Репозиторий DivKit