ここで私は、さまざまなLIの背景と背景位置を設定してソーシャルメディアのスプライトを作成する機能を持っています。これで、ホバーイベントリスナーを広告に表示し、背景画像を-29pxからその元の位置。- > forループ内の - >イベントリスナーの関数は、パラメータを持つことができますか?
これを行うには、forループの異なるインスタンス(この場合はvar "k")で宣言され、設定された変数を使用します。kは=で始まり、各ループ反復に-28が追加されます。
forループのイベントリスナーの関数で、この変数を使用してホバーの背景位置を計算したい場合、パラメータを追加すると、forループが実行されたときに終了します(関数ログ何か)私は前のループからvar iをログに記録することができましたが、それが必要なときには実行されませんでした。
ここで私はスニペット
function sprite() {
var c = document.getElementById("social").children;
var k = 0;
var cnc = "";
for (i = 0; i < c.length; i++) {
c[i].style.backgroundImage = "url(../Imgs/social_icons.jpg)";
cnc = String(k) + "px 0px";
c[i].addEventListener("mouseenter", spriteHover);
k = k - 28;
c[i].style.backgroundPosition = cnc;
}
}
function spriteHover() {
var c = this.querySelector("li");
var pnc = "0px -29px";
c.style.backgroundPosition = pnc;
}
sprite();
alert("working");
/*this is how my function was originally (the way i want it to work but doesnt) notice line 32
function sprite() {
var c = document.getElementById("social").children;
var k = 0;
var cnc = "";
for (i = 0; i < c.length; i++) {
c[i].style.backgroundImage = "url(../Imgs/social_icons.jpg)";
cnc = String(k) + "px 0px";
c[i].addEventListener("mouseenter", spriteHover(k));
k = k - 28;
c[i].style.backgroundPosition = cnc;
}
}
function spriteHover(k) {
var c = this.querySelector("li");
var pnc = k +"px -29px";
c.style.backgroundPosition = pnc;
}
sprite();
*/
.smedia {
background-color: ;
height: 20px;
position: absolute;
}
.smedia > ul {
position: relative;
display: inline-block;
background-color: ;
left: 836px;
height: 28px;
margin-right: 8px;
margin-top: 8px;
}
.smedia > ul li {
background-color: black;
display: inline-block;
height: 28px;
width: 28px;
}
.smedia a {
display: inline-block;
color: black;
text-decoration: none;
height: 28px;
width: 28px;
}
<nav class="smedia" id="smedia">
<ul id="social">
<li>
<a href="https://www.facebook.com/" class="fb" target="_blank"></a>
</li><!--
--><li>
<a href="https://twitter.com/?lang=en" class="tt" target="_blank"></a>
</li><!--
--><li>
<a href="https://www.youtube.com/" class="yt" target="_blank"></a>
</li><!--
--><li>
<a href="https://www.instagram.com/?hl=en" class="ig" target="_blank"></a>
</li><!--
--><li>
<a href="https://www.tumblr.com/" class="t" target="_blank"></a>
</li><!--
--><li>
<a href="https://www.google.com/" class="gg" target="_blank"></a>
</li>
</ul>
</nav>
を残して、任意のアイデアや修正は喜んで歓迎されるだろう。
あなたのsocial_icons.pngを共有できますか? –
ここにいるのは、あなたが黒色の背景を取り除いていることを確認してください(私はちょうどあなたが李を見ることができるように追加しました) http://imgur.com/a/mX510 これは私がそれらを今のところ共有する方法を知っている唯一の方法です。 – DNaNoob
質問。 JSソリューションを使用する代わりにcss:hoverセレクターを使用していないのはなぜですか? –