モバイルでもテキスト範囲選択とコピペがしたい
緑のテキスト選択範囲をスマホでも表示したい
隠しtextareaのテキストが選択されるから、スマホだと変な場所に「コピー」等のメニューが出るかも?
調整が必要そう
Popup Menu Extensionなどで範囲選択からのポップアップを表示が自前実装できた
exec-copyでコピーはできる
全部自前で作らないといけなさそうですね。でも最近のiOSの選択UIとか、ほんとにくそな感じなので、マシなのが作れるかもしれない。rakusai.icon
やってるshokai.icon
https://github.com/nota/scrapbox/pull/1140
範囲選択を作るのは、touchstart, touchmove, touchendイベントを使えばできそう
発生するeventオブジェクトの形式がmousedownやmousemoveと違う
e.pageX e.pageYがない
changedTouches配列に入っている
関数のつなぎなおしだけではできない
e.preventDefault()すると怒られる
touchstartの後、押しっぱなしにしているとmousedownイベントが発生する
mousedownと同時に右クリックメニューが表示されてしまう
mobileの時はmousedownを殺す必要がある
公開projectのソースを見せたいとPopup Menu Extensionと行のpermalinkを解除する機能がほしいにコンフリクトしまくっているので、先にそっちをmergeしたいshokai.icon*2
マウスと同じノリでタッチを実装すると、画面スクロールと衝突してしまう
https://gyazo.com/e773778207ccc525fa05e194a88119b5
タッチの挙動
テキスト範囲選択がない時
touchend
カーソル表示
touchmove
画面スクロール(何もしない、OSに任せる)
touchhold
近傍の単語を範囲選択状態にする
テキスト範囲選択がある時
範囲選択外を
touchstart
範囲選択を解除
カーソル表示
範囲選択内を
touchstart
カーソルを隠す
画面スクロール固定 $('body').css({overflow: 'hidden'})
selection startとendの近い方をタッチ箇所に再設定
touchmove
範囲選択を調整
画面スクロール固定 e.preventDefault
touchend
カーソルを表示
画面スクロール固定を解除 $('body').css({overflow: ''})
長押しでpopupを表示できるようにしたら、モバイルからScrapboxに画像アップロードができる
Request for Scrapbox #モバイル #shokaiのToDo #モバイルでのページ編集機能