Версия: 1.8

Прокрутка и выход за границы

По умолчанию Deneb старается вписать простые спецификации в контейнер визуала. Однако во многих случаях отображаемая диаграмма выходит за его границы. Это может произойти при явном задании высоты или ширины области отображения, использовании фасетов или повторяющихся представлений либо фиксированного размера шага шкалы.

На холсте отчёта

Рассмотрим пример с размером шага. Здесь на оси y слишком много значений, поэтому визуал выходит за границы по вертикали:

Визуал с вертикальной прокруткой

Настройка оформления полос прокрутки

Карточка Scrollbars в меню Rendered visual панели форматирования Power BI предоставляет несколько настроек:

Настройки полос прокрутки

  • Scrollbar color — цвет полосы прокрутки.
  • Scrollbar opacity (%) — непрозрачность полосы прокрутки.
  • Scrollbar radius (px) — радиус скругления ползунка.

В редакторе визуала

В области предварительного просмотра редактора спецификация отображается относительно маркера области отображения — пунктирной рамки. Так можно быстро оценить, насколько визуал выходит за границы, и при необходимости внести изменения:

Выход визуала за границы в редакторе

При необходимости у области предварительного просмотра появляются собственные полосы прокрутки. Они также используются, если вы увеличиваете масштаб и результат становится больше доступного пространства в редакторе.

Проверка и настройка прокрутки холста отчёта в редакторе

Чтобы увидеть, как будет работать прокрутка визуала на холсте отчёта, включите Show scrollbars on overflow в карточке Preview area меню свойств Advanced area:

Настройка Show scrollbars on overflow

Когда настройка включена, Deneb применяет полосы прокрутки к маркеру области отображения:

Полосы прокрутки внутри маркера области отображения

Эти полосы также используют настройки оформления из карточки Scrollbars, поэтому их можно проверить непосредственно в редакторе.

Отслеживание прокрутки с pbiContainer

Deneb добавляет в представление Vega сигнал pbiContainer. Он предоставляет сведения о контейнере визуала, доступные в выражениях:

Сигнал pbiContainer

  • Это объект с шестью свойствами:

    • height — высота контейнера визуала.
    • width — ширина контейнера визуала.
    • scrollHeight — полная высота содержимого контейнера с учётом прокрутки.
    • scrollWidth — полная ширина содержимого контейнера с учётом прокрутки.
    • scrollTop — текущая позиция вертикальной прокрутки.
    • scrollLeft — текущая позиция горизонтальной прокрутки.
  • Если визуал выходит за границы области предварительного просмотра и прокрутка становится доступна, Deneb обновляет scrollTop и scrollLeft при прокрутке видимой области и повторно выполняет представление. Эти значения можно использовать в примитивах и выражениях, чтобы они обновлялись вместе с прокруткой.

  • По умолчанию интервал ограничения частоты обработки событий прокрутки составляет 5 мс. Его можно изменить в свойстве Rendered visual > Container scroll events > Throttle time:

    Настройка интервала обработки событий прокрутки

    Минимум — 0 мс, максимум — 1000 мс. Настройка позволяет подобрать подходящую частоту обновления с учётом производительности.

  • Для разработки с этой возможностью в расширенном редакторе рекомендуется включить Show scrollbars on overflow. Иначе событие прокрутки не возникает.

  • Для обратной совместимости сигналы pbiContainerHeight и pbiContainerWidth, которые Deneb добавляет в спецификации Vega, остаются доступными. Если вы используете их, рекомендуется перейти соответственно на pbiContainer.height и pbiContainer.width: эти значения обновляются при изменениях контейнера, а не только при разборе спецификации.