2013-03-07 2 views
1

Я использую dagre и d3 для отображения графиков. Элементы графа и окно просмотра можно перетащить и увеличить. После перетаскивания/масштабирования области просмотра всякий раз, когда я перерисовываю график (или рисую другой график), окно просмотра остается там, где оно было установлено ранее, но сбрасывается при первом взаимодействии (переходит в [0,0] и коэффициент масштабирования по умолчанию).d3.js reset positon viewport

Как сбросить положение окна просмотра в d3 с вызовом функции?

ответ

2

Dagre автор здесь - вы используете демоверсию dagre или этот пользовательский код? Если вы используете dagre демо, я могу подтвердить поведение вы наблюдаете и исправление, чтобы добавить эту строку:

svgGroup.attr("transform", "translate(5, 5)");

до этого блока кода (dagre/demo.js, строка 252 в мое дерево):

svg.call(d3.behavior.zoom().on("zoom", function redraw() { 
    svgGroup.attr("transform", 
      "translate(" + d3.event.translate + ")" 
      + " scale(" + d3.event.scale + ")"); 
})); 

Я обновил демо в исходном коде под этим билетом: https://github.com/cpettitt/dagre/issues/56

Спасибо!

+0

эй, Крис, можете ли вы взять пик на этот вопрос? Буду признателен за любую помощь! http://stackoverflow.com/questions/26636878/position-of-a-custom-shape-using-dagre –