私は一連の画像から一連のリスト項目を背景画像に適用します。要素インデックスと配列インデックスの一致方法は?
var artifacts = [
'/img/artifacts/artifact-1.svg',
'/img/artifacts/artifact-2.svg',
'/img/artifacts/artifact-3.svg',
'/img/artifacts/artifact-4.svg',
'/img/artifacts/artifact-5.svg',
'/img/artifacts/artifact-6.svg',
'/img/artifacts/artifact-7.svg'
];
HTMLマークアップは次のようになります。
私は画像「アーティファクト」の配列を作成しました。
<ul class="slick-dots">
<li>1</li>
<li>2</li>
<li class="slick-active">3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
</ul>
ホバー/選択された色の画像が「選択」されています。ユーザーがリスト項目をクリックしたときに
が$('.slick-dots li').css('background-image', function(i) {
return 'url("' + artifacts[i % artifacts.length] + '")';
});
$('.slick-dots .slick-active').css('background-image', function(i) {
return 'url("' + artifactHover[i % artifactHover.length] + '")';
});
$('.slick-dots li button').click(function() {
$('.slick-dots li').css('background-image', function(i) {
return 'url("' + artifacts[i % artifacts.length] + '")';
});
var index = $(this).parent().index();
$(this).parent().css('background-image', function(i) {
return 'url("' + artifactHover[index] + '")';
});
});
だから、それがクリックされた要素をオフに基づいて、アレイから適切なイメージを引き出し:
var artifactHover = [
'/img/artifacts/artifact-1-hover.svg',
'/img/artifacts/artifact-2-hover.svg',
'/img/artifacts/artifact-3-hover.svg',
'/img/artifacts/artifact-4-hover.svg',
'/img/artifacts/artifact-5-hover.svg',
'/img/artifacts/artifact-6-hover.svg',
'/img/artifacts/artifact-7-hover.svg'
];
そして、ここでは、ここまで私はJavaScriptです。
画像があるよりも多くのリスト項目がある場合は、最初からやり直して、最初からやり直します。私の問題は、現在選択されているリストアイテムを適切なホバーイメージと一致させることです。アーティファクトホバーにindex()を使用すると、イメージの配列の量よりも大きいリスト項目を選択すると、リストの先頭から再開する代わりに、空のイメージが配置されます。
これを試しましたか?artifactHover [index%artifactHover.length] '? –
@ Alexandru-IonutMihaiはい!ありがとうございました!申し訳ありませんが、私はまだ%の動作方法と混同しています – h0bb5
@ h0bb5それはモジュロです。それは残りをする。したがって、「2%3 = 2」または「7%3 = 1」。 '7/3 = 2'が残っています。 – Loaf