3つの画像と各画像の下にそれぞれのdivを表示するコードがあります。 jquery .toggle関数を使用して、上の画像がクリックされたときに各divが切り替わるように作成しました。 divが非表示として開始されるようにする方法はありますか?
お時間をいただきありがとうございます、
参考コード:
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#picOne").click(function(){
$("#one").toggle(250);
});
$("#picTwo").click(function(){
$("#two").toggle(250);
});
$("#picThree").click(function(){
$("#three").toggle(250);
});
});
</script>
</head>
<body>
<center>
<h2>Smooth Transitions</h2>
<img src="one.png" id="picOne">
<div id="one">
<p>first paragraph.</p>
</div>
<img src="two.png" id="picTwo">
<div id="two" visibility="hidden">
<p>Second Pair of giraffe.</p>
</div>
<img src="three.png" id="picThree">
<div id="three">
<p>Thiird paragraph.</p>
</div>
</center>
</body>
</html>
visibility
はcssプロパティです。しかし、ディスプレイはどんなイベントでもあなたが望むものです
_<div id="two" style="display:none;">
<p>Second Pair of giraffe.</p>
</div>
_
または、インラインcssを捨てて、切り替えられる各divにcssクラスを与えます
_<div id="two" class="initiallyHidden">
_
その後
_.initiallyHidden { display: none; }
_
また、jQueryを少しクリーンアップすることもできます。トグルの原因となる画像にcssクラスを与えます
_ <img src="one.png" class="toggler">
<div>
<p>first paragraph.</p>
</div>
_
その後
_$("img.toggler").click(function(){
$(this).next().toggle(250);
});
_
これにより、これらすべてのIDが不要になり、このソリューションがさらに拡張可能になります。
動的に追加されたコンテンツを処理するには、on
の代わりにclick
を使用できます
_$(document).on("click", "img.toggler", function(){
$(this).next().toggle(250);
});
_
(およびパフォーマンスを向上させるために、これらの切り替えイメージはすべて、たとえばcontainerFoo
という名前のコンテナdivにあることを確認してから、$("#containerFoo").on
の代わりに$(document).on(
を実行します。
CSSの場合:
#one, #two, #three { display: none; }
JQueryを使用
$(function() { //once the document is ready
$('h2').nextAll('img') //select all imgs following the h2
.find('div') //select all contained divs
.hide();
})
ところで、IDセレクターを使用するのではなく、おそらくクラスを使用する必要があります
style="display: none;"
をdivに追加するだけです。これにより、divクラスが非表示として開始されます。
JQueryがブロックを切り替えると、スタイルはブロックに変更されます
<style>
.reply {
display: none;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$("form").toggle();
});
});
</script>
</head>
<body>
<button>Toggle between hiding and showing the paragraphs</button>
<form action="#" class="row m0 comment_form reply" >
<h5>post your comment:</h5>
<textarea class="form-control"></textarea>
<input type="submit" value="submitnow" class="btn btn default">
</form>