JavaScript を使用して画像を非表示にし、その下にあるテキストを表示しています。しかし、スクロールするとテキストが表示されると、コンテナでマウスアウトイベントが発生し、テキストが非表示になり、画像が再び表示され、奇妙なループに陥ります。
html は次のようになります。
<div onmouseover="jsHoverIn('1')"
onmouseout="jsHoverOut('1')">
<div id="image1" />
<div id="text1" style="display: none;">
<p>some content</p>
<p>some more content</p>
</div>
</div>
そしてJavaScript(scriptaculousを使用):
function jsHoverIn(id) {
if(!visible[id]) {
new Effect.Fade ("image" + id, {queue: { position: 'end', scope: id } });
new Effect.Appear ("text" + id, {queue: { position: 'end', scope: id } });
visible[id] = true;
}
}
function jsHoverOut (id) {
var scope = Effect.Queues.get(id);
scope.each(function(effect) { effect.cancel(); });
new Effect.Fade ("text" + id, {queue: { position: 'end', scope: id } });
new Effect.Appear ("image" + id, {queue: { position: 'end', scope: id } });
visible[id] = false;
}
これは本当に簡単に思えますが、頭を包むことはできません。