- ベストアンサー
スマートフォンサイト制作におけるJavaScriptの問題と対策
- スマートフォンサイトを制作中に、JavaScriptの組み込みに問題が発生しました。特に、「tilt.js」の縦横切り替え機能がAndroidでうまく機能しない状態です。
- Androidでの切り替え処理に問題があり、推測では「heightLine.js」の「window.onresize」の処理が機能せず、これが現象の原因と思われます。
- JavaScriptの知識が浅く、改善方法がわからない状況です。他のブロック要素揃えのJavaScriptも試しましたが、動的な要素揃えには「heightLine.js」が最適です。お力をお借りして解決策を教えていただけると幸いです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
window.onなんちゃら に直接関数突っ込んでるところを addEventListenerに変更すれば動くようになると思いますよ。 あとはtilt.jsがやってる事をフレキシブルボックス化するって手も使えそう。スマホならね。 ★tilt.js 好きな方使ってください $(document).ready(function(){ tilt(); var agent = navigator.userAgent; if(agent.search(/iPhone/) != -1){ $(window).on('orientationchange', tilt); // window.addEventListener('orientationchange', tilt); }else{ $(window).on('resize ', tilt); // window.addEventListener('resize ', tilt); } }); ★heightLine.js window.onresize=changeBoxSize; ↓ addEvent(window, 'resize', changeBoxSize); tilt.jsの $(document).ready 以降とheightLine.jsのaddEvent部分を ファイルから削除してまとめたらすっきりすると思います。 $(document).ready(function(){ tilt(); heightLine(); var agent = navigator.userAgent; if(agent.search(/iPhone/) != -1){ $(window).on('orientationchange', tilt); }else{ $(window).on('resize ', tilt); } $(window).on('resize ', heightLine); });
お礼
お返事が遅くなってしまい、申し訳ありません。 お教えいただいた通りに試してみたところ、正常に動作しているようです! スマホサイトに必要な縦横切り替えと今回の課題であった高さを揃える処理を同時に行うことができ、理想的な仕様にすることができました! 細かい解説付きでご回答いただき、ありがとうございました!