Почему в div родительского контейнера mxGraph нет полос прокрутки?

Мое приложение mxGraph-js (с Angular) загружает динамический контент из веб-службы, такой как объекты и отношения, и представляет их в виде вершин и ребер в mxHierarchicalLayout. Для панорамирования установлено значение false.

Проблема: в родительском контейнере не отображаются полосы прокрутки, даже если созданный граф большой, а родительский контейнер (элемент div) настроен с переполнением: прокрутка.

Ожидание: если граф становится больше, чем родительский контейнер, в родительском контейнере должны быть полосы прокрутки.

См. также прикрепленное изображение.

Наблюдения: mxGraph создает SVG с неверной информацией о минимальной ширине/минимальной высоте, точнее: информация о минимальной ширине/минимальной высоте не вычисляется даже при применении mxHierarchicalLayout. Поэтому результирующий SVG меньше фактического графика. В результате родительский контейнер div не имеет полос прокрутки, и часть графика не будет видна.

Я знаю, что в другом приложении mxGraph это всегда работает гладко, например. полосы прокрутки появляются всегда, когда они необходимы. Итак, мой вопрос: что может быть причиной такого поведения? Что нужно, чтобы убедиться, что результирующий размер SVG рассчитан правильно?

Спасибо и с уважением, Даниил

mxGraph, полосы прокрутки отсутствуют


person kramidani    schedule 27.12.2020    source источник


Ответы (1)


Как правило, полосы прокрутки отображаются без какой-либо дополнительной настройки mxGraph, но это также применимо к стилю контейнера графика (т. е. элемента div графика). overflow:scroll обычно не требуется, использование position:absolute всегда приводит к отображению полос прокрутки.

Вот что такое документация (https://jgraph.github.io/mxgraph/docs/js-api/files/view/mxGraph-js.html) говорит о полосах прокрутки

Свойство CSS overflow определяет, используются ли полосы прокрутки для отображения графика. Для значений «авто» или «прокрутка» будут отображаться полосы прокрутки. Обратите внимание, что флаг resizeContainer обычно не используется вместе с полосами прокрутки, поскольку он изменяет размер контейнера, чтобы он соответствовал размеру графика после каждого изменения.

См. https://jgraph.github.io/mxgraph/javascript/examples/scrollbars.html например (полосы прокрутки отображаются, когда ячейки перемещаются за пределы экрана) или другие примеры из https://jgraph.github.io/mxgraph/javascript/index.html

person redfish4ktc    schedule 28.12.2020