2017-08-07 10 views
0

これを検索しましたが、javascriptの知識は非常に基本的なので、私は答えを見逃している可能性があります。divをデスクトップで表示し、モバイルでの表示を切り替えます

デスクトップにはデフォルトで表示されるイメージギャラリーがあります。モバイルで見ると、そのギャラリーはデフォルトでは隠されていますが、ボタンをクリックすると表示されます。

モバイルナビゲーション用に用意したコードを使用してモバイル部分を作成しました。その部分はうまくいきます...しかし、明らかに、私のボタンと画像ギャラリーのdivはデフォルトでは "表示なし"に設定されているので、デスクトップには表示されません。しかし、私は両方のことが同じ内容で起こるようにする方法を知らない。

デスクトップではどのように表示し、モバイルではオプションの切り替えができますか?ありがとう!

HTML: 

<div class="container"> 
<button onclick="toggleGallery()">Click to view images</button> 
    <p>I want the hidden image-gallery div to show up here despite being display none.</p> 
    <div id="image-gallery" style="display:none;"> 
     <ul> 
      <li>Image 1</li> 
      <li>Image 2</li> 
      <li>Image 3</li> 
      </ul> 
     </div> 
</div><!--container--> 

CSS:

#image-gallery { 
display: block; 
width: 600px; 
border: 1px solid black; 
} 

#image-gallery li { 
width: 150px; 
height: 150px; 
color: white; 
text-align: center; 
margin: 10px; 
background-color: gray; 
display: inline-block; 
} 

button { 
display: none; 
} 

@media (max-width: 600px) { 

#image-gallery { 
display: block; 
width: 100%; 
} 

button { 
display: block; 
} 

#image-gallery li { 
border: 1px solid red; 
} 
} 

JS:

function toggleGallery() { 
var x = document.getElementById('image-gallery'); 
if (x.style.display === 'none') { 
x.style.display = 'block'; 
} else { 
x.style.display = 'none'; 
} 
} 
+0

の最後にスクリプトタグをpuutingについても説明した答えを持っています。 –

答えて

0

buttionためには、ちょうど最後にスクリプトタグを追加します。 あなたのために作ったフィドルのようにhere

toggleGallery()は分解されませんでした。

<div class="container"> 
    <button onclick="toggleGallery()">Click to view images</button> 
    <p>I want the hidden image-gallery div to show up here despite being display none.</p> 
    <div id="image-gallery"> 
    <ul> 
     <li>Image 1</li> 
     <li>Image 2</li> 
     <li>Image 3</li> 
    </ul> 
    </div> 
</div> 
<!--container--> 
<script> 
function toggleGallery() { 
var x = document.getElementById('image-gallery'); 
if (x.style.display === 'none') { 
x.style.display = 'block'; 
} else { 
x.style.display = 'none'; 
} 
} 

</script> 

Hereあなたはメディアクエリを使用することができ、HTML

+0

ありがとう!それはうまくいった。唯一の問題は、モバイルでボタンを2回クリックして開くことです。 1回のクリックでこれを行う方法はありますか?いずれにせよ、私はおそらくこれで前進することができます。 – sterlingcooper

+0

update:別のdivにギャラリーをラップし、「ウィンドウを閉じる」ボタンを追加してdivを閉じてページを更新し、人がやり直せるようにしました。 – sterlingcooper

+0

素晴らしい!この答えを正しいものとしてマークするといいですよ – TalGabay

0

これは、スモールスクリーンデバイスに隠され、767px幅よりも大きい画面に表示されます。 CSS:

#image-gallery { 
display: none; 
} 

@media (min-width:767px){ 
    #image-gallery { 
    display: block; 
    } 
} 

その後、トグル機能あなたのコードはOKだった

function toggleDiv(id) { 
    var div = document.getElementById(id); 
    div.style.display = div.style.display == "none" ? "block" : "none"; 
} 
+0

gudboisgnに感謝します。私はTalGabayのメソッドを使って問題を解決しましたが、コードをダブルクリックして問題を開くのに役立つかもしれません。私はそれが開かれた後にもう一度それを閉じることができなかっただけ問題です。 – sterlingcooper

関連する問題