問題:
個人のポートフォリオ サイトのギャラリー ページを作成しています。私のアートのさまざまなカテゴリに対して、上部に複数のリンクが必要です。サイトにアクセスすると、「すべて」オプションが選択され、私のアートのすべてのサムネイルが表示され、完全に不透明になります。リンクをクリックすると、リンクに対応するカテゴリに属するサムネイルのみが 100% の不透明度のままになり、その他のサムネイルは 50% に暗くなります。
ほぼ正しいと思うコードがありますが、それでも何もしません。以下は私が取り組んでいるコードです。
(省略された) HTML:
<ul id="filterOptions">
<li class="active"><a href="#" class="all">All</a></li>
<li><a href="#" class="ty">Typography</a></li>
<li><a href="#" class="pr">Print</a></li>
</ul>
<ul class="ourHolder">
<li data-type="ty"><a href="img.jpg"><img src="img.png"/></a></li>
<li data-type="il"><a href="img.jpg"><img src="img.png"/></a></li>
<li data-type="pr"><a href="img.jpg"><img src="img.png"/></a></li>
CSS:
$(document).ready(function() { var $holder = $('ul.ourHolder'); var $data = $holder.clone(); $('#filterOptions li a').click( 関数(e) { // すべてのボタンのアクティブなクラスをリセットします $('#filterOptions li').removeClass('active'); // クリックされたフィルター オプションのクラスを割り当てます // $filterType 変数への要素 var $filterType = $(this).attr('クラス'); $(this).parent().addClass('active'); if ($filterType == 'all') { // 次の場合、すべての li アイテムを $filteredData 変数に割り当てます // 「すべて」フィルター オプションがクリックされた var $filteredData = $data.find('li'); $filteredData.animate({不透明度: 1.0}, 500); } そうしないと { var $filteredData = $data.find('li[data-type=' + $filterType + ']'); $filteredData.animate({不透明度: 0.5}, 500); } }); });
新しいサイトを立ち上げる必要があり、このコードのビットだけが私の足を引っ張っています!