[解決済み】ウィンドウサイズ変更時のjQueryについて
2022-04-08 23:08:54
質問
以下のようなJQueryのコードを持っています。
$(document).ready(function () {
var $containerHeight = $(window).height();
if ($containerHeight <= 818) {
$('.footer').css({
position: 'static',
bottom: 'auto',
left: 'auto'
});
}
if ($containerHeight > 819) {
$('.footer').css({
position: 'absolute',
bottom: '3px',
left: '0px'
});
}
});
唯一の問題は、これはブラウザが最初にロードされたときにしか動作しないことです。
containerHeight
ウィンドウサイズを変更したときにもチェックされるようにする必要があります。
何かアイデアはありますか?
解決方法は?
jQuery、javascript、cssを使用してリサイズイベントを処理する例を紹介します。
(リサイズ時にスタイライズするだけなら、CSSが最適です(メディアクエリ))
http://jsfiddle.net/CoryDanielson/LAF4G/
css
.footer
{
/* default styles applied first */
}
@media screen and (min-height: 820px) /* height >= 820 px */
{
.footer {
position: absolute;
bottom: 3px;
left: 0px;
/* more styles */
}
}
javascript
window.onresize = function() {
if (window.innerHeight >= 820) { /* ... */ }
if (window.innerWidth <= 1280) { /* ... */ }
}
jQuery
$(window).on('resize', function(){
var win = $(this); //this = window
if (win.height() >= 820) { /* ... */ }
if (win.width() >= 1280) { /* ... */ }
});
リサイズコードが頻繁に実行されないようにするにはどうしたらいいですか!
これは、リサイズをバインドしたときに最初に気づく問題です。ユーザーがブラウザのサイズを手動で変更するときに、リサイズコードが大量に呼び出されるため、かなり不愉快に感じることがあります。
リサイズコードが呼び出される頻度を制限するために デバウンス または スロットル メソッドを アンダースコア &です。 ロダッシュ のライブラリを使用します。
-
debounce
は、最後のリサイズイベントから X ミリ秒後にのみ、リサイズコードを実行します。これは、ユーザーがブラウザのサイズを変更した後に、一度だけリサイズコードを呼び出したい場合に理想的です。グラフやチャート、レイアウトを更新する際に、リサイズイベントごとに更新するのが面倒な場合に有効です。 -
throttle
は、リサイズコードをXミリ秒ごとにしか実行しません。これは、コードが呼び出される頻度を調整するものです。これはリサイズイベントではあまり使われませんが、意識しておくとよいでしょう。
underscoreやlodashがない場合は、自分で似たような解決策を実装することができます。 JavaScript/JQueryです。$(window).resize リサイズが完了した後、どのように起動しますか?
関連
-
[解決済み】jQuery.addClassが動作しない。
-
[解決済み] Foundation Revealモーダルjavascriptを開く方法
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] どのラジオボタンが選択されているかをjQueryで知るにはどうしたらよいですか?
-
[解決済み] 画面サイズ、現在のウェブページ、ブラウザウィンドウのサイズを取得する
-
[解決済み] div' コンテナに合わせて画像を自動リサイズするにはどうしたらいいですか?
-
[解決済み] HTMLページのフッターを最小限の高さでページの下にとどめ、かつページには重ならないようにするCSS
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Bootstrap のカルーセルがスライドしない
-
[解決済み] フォーム送信のjQueryが動作しない
-
[解決済み] リーフレット - 既存のマーカーを検索したり、マーカーを削除するには?
-
[解決済み] ファイルをホストせずにホットリンクできるjQueryのバージョンはどこかにあるのでしょうか?
-
[解決済み] jQueryは、すべてのテキストフィールドの値の合計を計算する
-
[解決済み] jqueryでドロップダウンボックスを有効化/無効化する
-
[解決済み] 2つの画像を切り替えるにはどうすればよいですか
-
[解決済み] jQueryで背景画像をアニメーションで変化させる
-
[解決済み] jQuery動的セレクタ
-
[解決済み】クロスブラウザのウィンドウサイズ変更イベント - JavaScript / jQuery