問題:
個人のポートフォリオ サイトのギャラリー ページを作成しています。私のアートのさまざまなカテゴリに対して、上部に複数のリンクが必要です。サイトにアクセスすると、「すべて」オプションが選択され、私のアートのすべてのサムネイルが表示され、完全に不透明になります。リンクをクリックすると、リンクに対応するカテゴリに属するサムネイルのみが 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);
}
});
});
新しいサイトを立ち上げる必要があり、このコードのビットだけが私の足を引っ張っています!