CSS メディア クエリを使用して、「デスクトップ」サイトからモバイル Web サイトを作成しようとしています。
プッシュダウンメニュー(モバイル)に変換できるシンプルなドロップダウンメニュー(デスクトップ)があります。css は、ブラウザの幅が 768px を超えるデスクトップ用にロードされ、モバイルのプッシュダウン メニューは 767px 未満の任意の場所にロードされます。
問題は、プッシュダウン メニューが正しく機能するために js ファイルが必要なことです。js ファイルは、メニューを含む div を強制的に非表示にします。したがって、ブラウザーの幅が 767px まではプッシュダウンが正常に機能し、768px ではデスクトップ ナビゲーションが表示されません。
私は JavaScript と Jquery を初めて使用しますが、最小限の知識を使用してこれを効果的に動作させようとしました。サイトはできるだけ最小限に抑える必要があるため、できるだけシンプルにする必要があります。
現時点で、これは私が適切に機能することに最も近いものです:
function hideDiv(){
if ($(window).width() < 768) {
$(".togglebox").hide();
}else{
$(".togglebox").show();
}
}
//run on document load and on window resize
$(document).ready(function () {
//on load
hideDiv();
//on resize
$(window).resize(function(){
hideDiv();
});
});
$(document).ready(function(){
$(".togglebox").hide();
$("h1").click(function(){
$(this).next(".togglebox").slideToggle("slow");
return true;
});
});
ノート:
プッシュダウン メニューを機能させるには、トグルボックス div を非表示にする必要がありますが、デスクトップ ナビゲーションを表示するには、同じ div を 768 ピクセル以上の幅で表示する必要があります。
上記のコードは正常に動作しますが、ページの URL を入力すると、ブラウザの幅を変更しようとするまでナビゲーションが表示されません。私は 2 つの (document).ready 関数を持っていることを認識しており、これが問題かもしれませんが、コードをいじってみましたが、うまくいきませんでした。私が見落としている簡単な解決策があるに違いありませんか?
プッシュダウン メニュー関数を最大 767 ピクセルの幅でのみ実行し、それ以上の幅でトグルボックスの div を表示するだけでよいと考えました。