iOSでは$(window).height() と window.innerHeight の値は違うらしい
スクロール位置によって発火する系のアクションを仕込んだページで、どうもiPadだけ位置がズレる。スマホは専用のアクションにしてあるから問題ないんだけども、iPadはいわゆるPCサイズと同じレイアウト/アクションにしてある。
なんか数値が合わないんですけど
本来であれば、ページの一番下まで行くと
$(document).height() === $(window).height() + $(window).scrollTop()
これが成り立つはずなんだけど、合わない。。なんで。
PCだとバッチリ合うのに、当たり前だけど。
最初はあんまり理解できていないviewportの問題かなーなんて思ってたけど違った。
こちらのサイトではwindow.innerWidth
/ window.innerHeight
は "iOSは3つともURLバーの表示によって数値が増減する" とあったが、自分の環境(iOS 11.4.1)では同じではなかった。
「3つとも」というのはwindow.innerWidth
/ window.innerHeight
に加え、$(window).width()
/ $(window).height()
、document.documentElement.clientWidth
/ document.documentElement.clientHeight
のこと。
結局、window.innerHeightがURLバーの最大/最小化で変化するようだったので、
window.innerHeight === $(window).height() + $(window).scrollTop()
これが成立することとなり、解決。
ちなみにアンドロイドOSについては知らん。
いつまでもjQueryなんぞ使ってんじゃねーよ!ってことですかね。
コメント0