私はiOS Mobile Safariで自分のページに問題が発生しました。向きが変わるとページがフリーズします。私の機能は$(window).resize();
で実行されています。これは、モバイルサファリがポートレート/風景の方向を聞くものです。jQueryは必要ありませんが、それぞれのコードが破損しています
私の脳を疲れさせ、必死に試してみた後、return false;
を私の機能の.each();
セクションに追加しました。オリエンテーション変更が凍結しなくなりました!しかし...
ここで定義した要素の.each();
の機能は実行されません。
return false;
の追加動作(Mobile Safariのフリーズ防止)を維持しながら、すべての要素に対して機能を実行させるにはどうすればよいですか?
テストサイト:http://brantley.dhut.ch/
はありがとうございました!
はJavaScript:
(function($){
$.respond = function(callback) {
$(document).ready(function() {
dimensions();
});
$(window).load(function() {
dimensions();
$('#load').fadeOut('fast', function() {
$('.z:first').fadeIn('slow');
$('#status').fadeIn('slow');
$('footer').fadeIn('slow');
});
});
$(window).resize(function() {
dimensions();
});
function dimensions() {
var i = $('.z');
i.each(function() {
var browserWidth = $(window).width();
var imgRatio = ($(this).width()/$(this).height());
var availableHeight = ($(document).height() - $('header').height() - $('#status').height() - $('footer').height() - 80);
var browserRatio = (browserWidth/availableHeight);
if (imgRatio >= 1) {
$(this).addClass('landscape');
}
if (browserRatio >=1.5) {
$('#container').css('min-height', '360px');
} else {
$('#container').css('min-height', '555px');
}
if (browserRatio >= imgRatio) {
/* landscape */
//$('body').css('background', 'blue');
$(this).height(availableHeight).width('auto').css('margin-top', '0');
} else {
/* portrait */
//$('body').css('background', 'green');
$(this).width(browserWidth - 40).height('auto').css('margin-top', (availableHeight - $(this).height())/2);
}
$(this).css('margin-left', (browserWidth - $(this).width())/2);
});
return false;
};
};
})(jQuery);
まず第一に、JavaScriptを悪用する理由は何ですか?なぜセミコロンを省略していますか?ループが勃発したため、「フリーズ解除」が発生したことがありますか?ループの最適化を検討する必要がありますか? – Shef
あなたは少し具体的になることができますか?このコードに構文エラーはありません... Googleのデベロッパーコンソール – technopeasant
var imgRatio = $(this).width()/ $(this).height()var availableHeight =($(document).height( $( 'header')。高さ() - $( '#status')。高さ() - $( 'footer')。高さ() - 80)var browserRatio = browserWidth/availableHeight'セミコロンを追加します。 – Shef