私の問題は、私は要素をドラッグすると、要素はカーソルの後ろにあるので、潜在的に比率の問題のように見える?インタラクトJS、ビューボックス内のsvg要素をドラッグしますか?
コード:
interact('.element', {
context: '.lipstick__plane'
})
.draggable({
snap: {
targets: [
interact.createSnapGrid({x: 10, y: 10})
],
range: Infinity
},
inertia: true,
restrict: {
restriction: '#lipstick__plane__main',
elementRect: {top: 0, left: 0, bottom: 1, right: 1},
endOnly: true
}
})
.on('dragmove', function (event) {
$scope.$apply(function() {
var target = event.target,
x = (parseFloat(target.getAttribute('x')) || 0) + ((1020/window.outerWidth) * event.dx),
y = (parseFloat(target.getAttribute('y')) || 0) + ((1020/window.outerHeight) * event.dy);
var indx = event.target.getAttribute('data-index');
_.set($scope.stage.elements[indx], 'meta.XCord', x);
_.set($scope.stage.elements[indx], 'meta.YCord', y);
});
});
私は、カーソルにそれが近い得ている、そこにダイビングですが、私は一日中番号をしようとすることができ...
マイSVG初期化ブロック:私は思います
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1024 1024" width="1024px" height="1024px" xml:space="preserve" id="lipstick__plane__main">
一つのことが問題かもしれないが、私は疑います新しくx
とy
属性を取得するために、クエリーの後にAngularダイジェストが発生するのでしょうか?
svg内に変換が適用されているかどうか確認しましたか?翻訳が拡大縮小されているかのように見えます。変換を行っているラッピンググループによって何が起こるかわかります.... – philipp
ラッパーdivに適用される 'width:calc(100vw - 200px)'と 'display:block ;幅:100%; height:auto; 'をsvg要素自体に追加します。 –
それはスケーリングの問題です。それは1024ピクセルのサイズで表示されるsvgで試してみてください。うまくいくはずです。その場合、画面変換行列を使用して翻訳ベクトルをスケーリングする必要があります – philipp