Hallo Leute,
ich hab bei meiner internetseite für eine fotogalerie ein js-script geschrieben, womit man wenn man in der großansicht ist einfach je nachdem wo der zeiger ist einb bild vor oder zurückswitchen kann.
je nach dem ob vor oder zurück kommt links oder rechts vom eigentlichen bild, ein halb weiß halb durchsichtiger schmalerbalken, mit einem pfeil in die entsprechende richtung (also links oder rechts).
mein problem ist vollgendes wenn man nun mit dem zeiger über das bild geht was automatisch dahingetan wird(der pfeil nach links/rechts) das fängt dieser an zu flacker und ist mal da mal weg, kann man das i-wie verhindern?
danke im vorraus für eure Hilfe,
lg, JCM
[EDIT]:
hab ne lösung *gg*:
es lag daran das der Event mouseout auch dann eintritt, wenn man den Mauszeiger über ein Nachfahrenelement bewegt...
lösung des problems (welches auch für andere browser gilt als IE sonst könnte man einfach onmouseleave machen):
und dann:
^^
ich hab bei meiner internetseite für eine fotogalerie ein js-script geschrieben, womit man wenn man in der großansicht ist einfach je nachdem wo der zeiger ist einb bild vor oder zurückswitchen kann.
je nach dem ob vor oder zurück kommt links oder rechts vom eigentlichen bild, ein halb weiß halb durchsichtiger schmalerbalken, mit einem pfeil in die entsprechende richtung (also links oder rechts).
mein problem ist vollgendes wenn man nun mit dem zeiger über das bild geht was automatisch dahingetan wird(der pfeil nach links/rechts) das fängt dieser an zu flacker und ist mal da mal weg, kann man das i-wie verhindern?
Code:
function mouseover(event, width, page, Bild, Ordner) {
var posy = event.clientY;
var posx = event.clientX;
var y = posy - 250;
var x = posx - (((window.innerWidth-900)/2)+20);
var grenze = width/2;
//alert(grenze + '_' + x);
if(grenze < x) {
show_img('rechts');
del_img('links');
document.getElementById("newimg").setAttribute("href", "show_img.php5?Ordner=" + Ordner + "&Bild=" + (parseInt(Bild)+1) + "&page=" + page, 0);
} else {
show_img('links');
del_img('rechts');
document.getElementById("newimg").setAttribute("href", "show_img.php5?Ordner=" + Ordner + "&Bild=" + (parseInt(Bild)-1) + "&page=" + page, 0);
}
}
function mouseout() {
del_img('links');
del_img('rechts');
document.getElementById("newimg").setAttribute("href", "", 0);
}
function show_img(richtung) {
document.getElementById(richtung).innerHTML = "<img border=\"0\" src=\"Bilder/" + richtung + ".GIF\">";
}
function del_img(richtung) {
document.getElementById(richtung).innerHTML = "";
}
danke im vorraus für eure Hilfe,
lg, JCM
[EDIT]:
hab ne lösung *gg*:
es lag daran das der Event mouseout auch dann eintritt, wenn man den Mauszeiger über ein Nachfahrenelement bewegt...
lösung des problems (welches auch für andere browser gilt als IE sonst könnte man einfach onmouseleave machen):
Code:
function containsDOM (container, containee) {
var isParent = false;
do {
if ((isParent = container == containee))
break;
containee = containee.parentNode;
}
while (containee != null);
return isParent;
}
function checkMouseLeave (element, evt) {
if (element.contains && evt.toElement) {
return !element.contains(evt.toElement);
}
else if (evt.relatedTarget) {
return !containsDOM(element, evt.relatedTarget);
}
}
und dann:
Code:
onmouseout="javascript:if(checkMouseLeave(this, event)) {mouseout();}"
^^