スマホ、タブレット限定なのですが
textareaをフォーカスしている時に画面回転するとフォーカスが外れて、キーボードが消えるようにしたいです。
フォーカス → 縦横判断 → 回転検知 → ブラーというふうに考え下記のように実装したのですが
最初の回転しかうまくいきません。
解決方法ございましたら、ぜひ教えてください。
-実装方法
縦横の判断にはscreen.orientation.angleを使用し
フォーカス時に毎回角度を確認し、回転したあとの角度と比較しています。
ーエラー
コンソルを見るとline6とline9の数値が違います。
line6は毎回フォーカスされる度の角度を取っているようですが、line9は初期の角度を取っている気がします。
※Androidなのでキーボード出現により、毎回リサイズ扱いになります。
html
1<textarea id="textarea"></textarea>
js
11 var textarea_focus = document.getElementById('textarea'); 22 textarea_focus.addEventListener('focus',focusTextarea); 33 44 function focusTextarea(){ 55 let defalt_screen_angle = screen.orientation.angle; 66 console.log(defalt_screen_angle); 77 88 window.addEventListener('resize',()=>{ //フォーカス時に回転 99 console.log(defalt_screen_angle); 1010 console.log(screen.orientation.angle); 1111 if (!(screen.orientation.angle === defalt_screen_angle)) { 1212 textarea_focus.blur(); 1313 } 1414 }); 1515 };
回答2件
あなたの回答
tips
プレビュー