マウスホイールをスクロールすると、グラフのキャンバスがマウスの位置でズームイン/ズームアウトできることを確認するにはどうすればよいですか?ズームイン時とアウト時の現在のデータを処理する方法
私のキャンバスチャートでは、chart.jsやd3.jsなどのライブラリを使用していません。マウスの位置を中心にズームイン/ズームアウトすることができると予想していますが、ズームインとズームアウトで値が変わります。マウスの位置の中心点が座標系の変更の影響を受けないことを確認する方法。
マウスホイールをスクロールすると、グラフのキャンバスがマウスの位置でズームイン/ズームアウトできることを確認するにはどうすればよいですか?ズームイン時とアウト時の現在のデータを処理する方法
私のキャンバスチャートでは、chart.jsやd3.jsなどのライブラリを使用していません。マウスの位置を中心にズームイン/ズームアウトすることができると予想していますが、ズームインとズームアウトで値が変わります。マウスの位置の中心点が座標系の変更の影響を受けないことを確認する方法。
CSS transform
プロパティscale()
を使用している場合は、transform-origin
という別のルールを設定できます。 scale()
を適用する前に画面の中央に設定すると、ページが正しく拡大されます。スケールを() `ズームイン、ズームアウトする:
let scale = 1;
let scrollFactor = -0.1;
$(window).bind('wheel mousewheel', function(e){
let scroll = e.originalEvent.deltaY;
let sign = Math.sign(scroll);
let newScale = Math.round((scale + scrollFactor * sign)*100)/100;
// you could set an if statement here before calling zoom() to
// set a lower and higher zoom limit
zoom(newScale, [e.pageX, e.pageY]);
});
私はCSSを使用せず、変換していません。 私は、チャートラインの2点間の間隔を変更し、それを再描画してズームインとズームアウトの結果を得ることによって、チャートラインの履歴データを作成しています。私はこのようなデモをしたいと思う:https://app.expertoption.com/ 私はデモをほぼ終えているが、私はそれをズームインしたりズームアウトしたりすることができる現在のデータにどう対処するかは知らないマウスの位置。画面の左側でズームイン/ズームアウトします。 –
もしあなたがいくつかの詳細な情報**といくつかのコード**を与えなければ、私たちはあなたを助けることができません – Ivan
とにかくありがとうございます:) –
あなたは'変換を使用しています
は、その後、あなたは
bind()
方法でスクロール活性化を実現することができますか? – Ivan