Ich benutze JavaScript, um ein Bild zu verstecken und etwas Text zu zeigen, der unter ihm versteckt ist. Wenn der Text jedoch angezeigt wird, wenn Sie darüber blättern, wird das mouseout-Ereignis auf dem Container ausgelöst, das den Text dann ausblendet und das Bild erneut anzeigt, und es wird nur eine seltsame Schleife angezeigt.Probleme mit mouseout Ereignis
Die html sieht wie folgt aus:
<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>
Und das Javascript (Es verwendet 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;
}
Dies scheint wirklich einfach, aber ich kann nicht wickeln nur meinen Kopf um ihn herum.
Dies funktioniert auch im Fall, dass Sie die DIV Höhe 100% seiner Eltern machen (das heißt in einem Kasten); obwohl das oben genannte nicht nützlich ist, wenn dein "text1" DIV irgendwelche Anker enthält, da diese durch das zusätzliche DIV blockiert werden. –