-1
無法縮放或放大jointjs中的紙張。我不斷收到一個錯誤:paper is not defined
在這一行var svgPoint = paper.svg.createSVGPoint();
裏面的函數offsetToLocalPoint
。爲什麼這個javascript變量未定義?
論文是在第一點定義的,我不確定哪裏出了問題?
代碼:
var clientX, clientY, offsetX, offsetY;
var x, y;
var shapeId = "";
var paper = "";
var graph = new joint.dia.Graph;
paper = new joint.dia.Paper({
el: $('#canvas'),
id: 'myPaper',
model: graph,
gridSize: 1,
defaultLink: new joint.shapes.devs.Link({
router: {name: 'orthogonal', args: {maximumLoops: 1000, excludeTypes: ['container']}},
connector: {name: 'rounded'},
attrs: {'.marker-target': {d: 'M 10 0 L 0 5 L 10 10 z'}},
labels: [{position: .5, attrs: {text: {text: 'label', 'font-size': '13', 'stroke': 'black', 'stroke-width': '0.1'}}}]
}),
validateConnection: function (cellViewS, magnetS, cellViewT, magnetT, end, linkView) {
if (magnetS && magnetS.getAttribute('type') === 'input')
return true;
if (cellViewS === cellViewT)
return false;
return (magnetS !== magnetT);
return magnetT && magnetT.getAttribute('type') === 'input';
},
markAvailable: true
});
//paper zooming/scaling
paper.$el.on('mousewheel DOMMouseScroll', onMouseWheel);
function onMouseWheel(e) {
console.log("hi");
e.preventDefault();
e = e.originalEvent;
var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)))/50;
var offsetX = (e.offsetX || e.clientX - $(this).offset().left); // offsetX is not defined in FF
var offsetY = (e.offsetY || e.clientY - $(this).offset().top); // offsetY is not defined in FF
var p = offsetToLocalPoint(offsetX, offsetY);
var newScale = V(paper.viewport).scale().sx + delta; // the current paper scale changed by delta
if (newScale > 0.4 && newScale < 2) {
paper.setOrigin(0, 0); // reset the previous viewport translation
paper.scale(newScale, newScale, p.x, p.y);
}
}
function offsetToLocalPoint(offsetX, offsetY, paper) {
var svgPoint = paper.svg.createSVGPoint();
svgPoint.x = offsetX;
svgPoint.y = offsetY;
var offsetTransformed = svgPoint.matrixTransform(paper.viewport.getCTM().inverse());
return offsetTransformed;
}
爲什麼downvote?評論會有幫助 – Satyadev