Я пытаюсь создать фиксированное иерархическое дерево, используя vis. js, и у меня возникают некоторые странные проблемы. Предполагается, что сеть имеет полностью фиксированное положение, то есть узлы не могут быть перемещены, а масштаб не может быть отрегулирован, однако пользователь может взаимодействовать с узлами, щелкая по ним (что прекрасно работает). Я отключил всю физику.
Проблема, с которой я столкнулся, заключается в том, что когда я обновляю sh страницу, сеть проходит очень уродливую анимацию, где она на секунду сжимается горизонтально, а затем возвращается к его нормальная форма, кроме меньшей. Я испробовал множество различных событий и техник, но ни один из них, похоже, не работает, и многие из них, кажется, усугубляют проблему. Вот пример:
Я пытался использовать focus
для перерисовки сети после того, как она делает уродливые вещи, и вот что я написал:
network.focus(1, {
scale : 0.6993006993006992,
offset: {x: 0, y: -210},
locked: true,
animation: false
});
Я получил номер шкалы от network.getScale()
и соответствует масштабу, который я на самом деле хочу. Я уверен, что смещение правильное, потому что мне пришлось возиться с ним, чтобы все было в центре начальной загрузки страницы. Однако, когда я перезагружаю страницу, она проходит ту же самую анимацию сжатия, что и раньше, за исключением того, что она фактически делает сеть намного больше, чем должна быть, что не имеет смысла. Согласно getScale()
текущая шкала верна, но сам график не отражает это. Кроме того, я попытался fit
с теми же параметрами, и он сделал то же самое, за исключением того, что дерево было смещено влево. Кто-нибудь знает, почему он так себя ведет?
В заключение, я ищу способ обновить sh страницу без изменения размера или масштаба моей сети каким-либо образом.
Кроме того, я понятия не имею, сработает ли это или нет, но возможно ли предотвратить перерисовку графика? Это может вообще не сработать, но я хотя бы хотел это попробовать, возможно ли это на самом деле? Спасибо.