新しい Web サイトのグリッド レイアウトに取り組んでいます。PHP コード:
echo"<div class='model_container_invisible' onMouseOver='fade(this, 0)' onMouseOut='fade(this, 1)'>";
echo"<span class='model_title_wrapper'>";
echo"<span class='model_title'>Ancient Dragon</span>";
echo"<span class='model_designer'>designed by Kamiya Satoshi</span>";
echo"</span>";
echo"<img class='model_img' src='img/models/001.jpg' />";
echo"</div>";
これはグリッド要素用です。画像の不透明度は0.5です。js関数のfade()で要素をホバーしたときに変更したいです。そのコードは次のとおりです。
function fade(elem, direction)
{
/* if(elem.className == "model_container_invisible")
elem.className = "model_container_visible";
else
elem.className = "model_container_invisible"; */
var img = elem.getElementsByTagName("img")[0]; //das Bild
if(direction == 0) //einblenden
{
alert("fadein, this: "+elem);
img.style.opacity = 0.5;
var aktiv = window.setInterval(function() {
img.style.opacity = String(Number(img.style.opacity) + .05);
if(Number(img.style.opacity) >= 1.0) {
window.clearInterval(aktiv);
}
}, 8);
}
else //ausblenden
{
alert("fadeout, this: "+elem);
img.style.opacity = 1;
var aktiv = window.setInterval(function() {
img.style.opacity = String(Number(img.style.opacity) - .05);
if(Number(img.style.opacity) <= 0.5) {
window.clearInterval(aktiv);
}
}, 16);
}
}
しかし、マウス ポインターが div から別の div に移動すると (model_title_wrapper から model_title に移動すると)、関数が再度呼び出されます。理解できません!
手伝ってくれませんか?ありがとう!