$(window).width()を使用すると、Webブラウザーのサイズを取得できることを知っています。
列幅を再調整できるように、ユーザーがWebブラウザーのサイズを変更したことを検出したいと思います。これを自動的に検出する方法はありますか、それともsetTimeintervalを使用してループし、変更されたかどうかを確認する必要がありますか?
resize event を試してください
$(window).resize(function() {
console.log('window was resized');
});
JavaScriptイベントの名前は_window.onresize
_です。
JQueryバインディングの名前は .resize()
です
これを書き留めると、これらの答えのいずれも、これを行うための最新のベストプラクティスの方法を提供しません。
window.addEventListener("resize", function(event) {
console.log(document.body.clientWidth + ' wide by ' + document.body.clientHeight+' high');
})
[〜#〜] mdn [〜#〜] では、非常に優れたJavascriptスタンドアロンコードを提供します。
window.onresize = resize;
function resize()
{
alert("resize event detected!");
}
この種の機能だけが必要な場合は、ぜひお試しください。
IEで覚えておくべきこと、少なくとも、サイズ変更イベントはバブルし、配置された要素とドキュメント本文は、独立したサイズ変更イベントを起動できます。
また、IEは、ウィンドウまたは要素がドラッグによってサイズ変更されると、「サイズ変更」イベントの連続ストリームを起動します。他のブラウザは、マウスアップが起動するのを待ちます。
IEは十分に大きなプレーヤーであり、IEクライアントのみに分岐する場合でも、フィールドのサイズ変更イベントの中間ハンドラーがあると便利です。
Ieハンドラーは、「実際の」サイズ変更ハンドラーを呼び出す前に、短いタイムアウト(100〜200ミリ秒)を設定します。タイムアウト前に同じ関数が再度呼び出された場合、それはbubblngイベントであるか、ウィンドウが新しいサイズにドラッグされているため、タイムアウトをクリアして、もう一度設定します。
debounce
を使用することができます: https://davidwalsh.name/javascript-debounce-function
それ以外の場合
window.addEventListener("resize")
ウィンドウのサイズ変更が進行している間、ずっと発生します。これはCPUオーバーヘッドに負担をかけます。
これは、私が同じことのためにまとめた小さなコードです。
(function () {
var width = window.innerWidth;
window.addEventListener('resize', function () {
if (window.innerWidth !== width) {
window.location.reload(true);
}
});
})();
Media = "only screen and(min-width:750px)" href = "... css file for wide windows" media = "only screen and(max-width:751px)" href = "... css file携帯用」
右側のウィンドウの境界線を左右に移動してウィンドウサイズを増減すると、Webブラウザーがワイドウィンドウからモバイルに自動的に切り替わります。ウィンドウの幅を検出するためにJavaScriptコードを含める必要はありません。これは、WindowsコンピュータとMacintoshコンピュータの両方のChrome、Firefox、およびInternet Explorerで機能します。