私はjavascript circuit simulatorを持っており、ゲートをドラッグしてサーキットを編集します。時には回路が非常に大きくなるので、描画されるキャンバス要素がブラウザのビューポートを超え、スクロールが必要になります。キャンバスでのスクロールとドラッグ操作のサポート
タッチスクリーンを持つユーザーが画面上で指をスライドさせると、回路要素から始まり、ドラッグとして解釈されるスライドが必要になります。しかし、空の空間から始まるスライド(私のカスタムロジックがキャンバスを何に見せているかによって決まる)は、スクロールとして解釈されるべきです。
ドラッグとスクロールの動作を調和させて共存させるにはどうすればよいですか?どのようにすればブラウザの通常のスクロール動作をあまりシミュレートせずに?スクロールがうまくいけば、ユーザーはそれを嫌う。ネイティブな振る舞い。
(ボーナス:?私はまだ[それをリロードする時期すでに、ページ上部のプルダウンAndroid上で例えば]ナビゲーションアクションをトリガーからスクロールを防止しながら、通常のスクロール動作が、を変更せずにそれを行うにはどうすればよいです)
私はキャンバスに制御を加えてドラッグを表示させたいときにのみ、touchEvent.preventDefault
を呼び出してみました。これは、スクロールバーが表示されるとすぐにうまく動作しなくなります(ブラウザはタッチを送信した後すぐにキャンセルします)。 CSSプロパティーtouch-action
も役立つかもしれませんが、私はそれを多く実験していません。