モバイルでもテキスト範囲選択とコピペがしたい
隠しtextareaのテキストが選択されるから、スマホだと変な場所に「コピー」等のメニューが出るかも?
調整が必要そう
全部自前で作らないといけなさそうですね。でも最近のiOSの選択UIとか、ほんとにくそな感じなので、マシなのが作れるかもしれない。rakusai.icon
やってるshokai.icon
範囲選択を作るのは、touchstart, touchmove, touchendイベントを使えばできそう
発生するeventオブジェクトの形式がmousedownやmousemoveと違う
e.pageX e.pageYがない
関数のつなぎなおしだけではできない
e.preventDefault()すると怒られる
touchstartの後、押しっぱなしにしているとmousedownイベントが発生する
mousedownと同時に右クリックメニューが表示されてしまう
mobileの時はmousedownを殺す必要がある
マウスと同じノリでタッチを実装すると、画面スクロールと衝突してしまう
https://gyazo.com/e773778207ccc525fa05e194a88119b5
タッチの挙動
テキスト範囲選択がない時
touchend
カーソル表示
touchmove
画面スクロール(何もしない、OSに任せる)
touchhold
近傍の単語を範囲選択状態にする
テキスト範囲選択がある時
範囲選択外を
touchstart
範囲選択を解除
カーソル表示
範囲選択内を
touchstart
カーソルを隠す
画面スクロール固定 $('body').css({overflow: 'hidden'})
selection startとendの近い方をタッチ箇所に再設定
touchmove
範囲選択を調整
画面スクロール固定 e.preventDefault
touchend
カーソルを表示
画面スクロール固定を解除 $('body').css({overflow: ''})