jQueryを使ってresize処理を行う機会があったのですが、なぜか、最初のスクロールでresizeイベントが発生してしまう。
jQuery(function(){
//scrollで発生
$(window).on('resize',function(){
});
})どうやら、これ、知ってる? iOS Safariでスクロールしただけでリサイズイベントが発生する原因と対処法
にも書かれているとおり、スクロールした時にアドレスバーが小さくなって、それによってトリガーされる模様。
従って、iOSの場合のみorientationchangeを使って処理をかけばおk
jQuery(function(){
var ua = navigator.userAgent.toLowerCase();
var eventName;
if (ua.indexOf("iphone") > -1 || ua.indexOf("ipad") > -1 || ua.indexOf("ipod") > -1) {
eventName = 'orientationchange';
}else{
eventName = 'resize';
}
$(window).on(eventName,function(){
});
})
0 コメント:
コメントを投稿