私は流動的なグリッドレイアウトを持っています。いくつかの列 (それほど必要ではありません - Twitter の更新など) は、解像度が小さい場合は「非表示」、見出しをクリックすると「表示」する必要があります。
これが私がこれまでに持っているものです:
HTML
<div id="wrapper">
<div class="toggle">
<h2>Heading</h2>
This content is visible always
</div>
<div class="toggle-small">
<h2 class="toggle-small-heading">Heading</h2>
<div class="toggle-small-content">
This content is hidden on max-width 600px. You can reveal it by clicking the heading.
</div>
</div>
<div class="toggle-small">
<h2 class="toggle-small-heading">Heading</h2>
<div class="toggle-small-content">
This content is hidden on max-width 600px. You can reveal it by clicking the heading.
</div>
</div>
</div>
Jクエリ
// D E F I N E T H E F U N C T I O N
function ToggleSmall () {
// CONDITIONALS
// Clickable heading
var ToggleSmallVar = $('#wrapper').find('.toggle-small-heading');
// Content to toggle
var ToggleSmallCol = $('#wrapper').find('.toggle-small-content');
// FUNCTION
// Content to toggle - hide it to be shown on click
$(ToggleSmallCol).addClass('none');
// Toggle function
$(ToggleSmallVar).click(function () {
// Find col to toggle
var ToggleSmallColTarget = $(this).closest('.toggle-small-section').find('.toggle-small-col');
// Toggle the DIV
$(ToggleSmallColTarget).slideToggle('slow');
});
}
// C A L L T H E F U N C T I O N
$(document).ready(function () {
if ($(window).width() < 681) {
ToggleSmall();
}
});
ロード時に動作しますが、ウィンドウのサイズ変更でも「レスポンシブ」に動作するようにしています。681 より小さい解像度で ToggleSmall() 関数を実行し、大きい解像度で停止します。
「サイズ変更」イベントで関数をバインドしようとしました (例: resize のメディア クエリとしての jQuery ) が、何らかの理由で「トグル」が 3 ~ 4 回実行されます (ドキュメントは複数回「準備完了」ですか?)。
主に変数を定義するために、他のソリューションをいくつか見つけましたが、これまでのところ機能していません。私はjQueryの初心者でもあるので、何かを見逃しているかもしれません。:) 何か案は?