2015-12-02 3 views
1

Я оживляю движение элемента к нужной новой точке, но я не смог выработать правильный синтаксис, чтобы передать функцию перехода на два значения. У меня есть обходной путь прямо сейчас:JointJS: лучший способ для перехода в x и y?

packet.transition('position/y', linkInfo.end.y, { 
    delay: animationDelay, 
    duration: animationDuration 
}); 

packet.transition('position/x', linkInfo.end.x, { 
    delay: animationDelay, 
    duration: animationDuration 
}); 

Это кажется менее удовлетворительным, как я знаю, что должно быть лучшим способом. Я слишком долго размышлял над документами и учебниками, и правильный метод все еще не проникает в мой толстый череп. Может ли какая-то душа помочь?

Большое спасибо заранее!

ответ

3

Это код, который я закончил с использованием. Моя проблема заключалась не в понимании типов интерполяции.

var linkInfo = { 
    start: { 
     x: startX, 
     y: startY 
    }, 
    end: { 
     x: endX, 
     y: endY   
    }, 
    source: sourceCell, 
    target: targetCell 
}; 


packet.position(linkInfo.start.x, linkInfo.start.y); 

graph.addCell(packet); 

packet.transition('position', linkInfo.end, { 
    delay: animationDelay, 
    duration: animationDuration, 
    valueFunction: joint.util.interpolate.object 
}); 
1

ли вы попробовать что-то вроде этого:

packet.transition('position', {x: linkInfo.end.y, y: linkInfo.end.y}, { 
    delay: animationDelay, 
    duration: animationDuration 
}); 
+0

Да, Andry, я закончил делать что-то очень похожее. Моя проблема заключалась не в понимании правильного использования типов интерполяции. Большое спасибо за ответ! –