Archívum - Szep 12, 2006
Diszkrét rollover vs. IE
Szevasztok, problémám a következő lenne:
adottak az alábbi Javascript függvények:Ez lényegében egy rollover effektet valósít meg az alábbiakhoz kódokban:, ahol az onmouseoverhez tartozó képek nevének végén az _on utótag van.
Opera és Firefox alatt működik is rendesen. IE alatt viszont nem, annak ellenére, hogy az IE Developer Toolbar szerint az onmouseout és onmouseover események rendesen hozzáadódnak (megfelelő értékekkel) az <a> taghez.
adottak az alábbi Javascript függvények:
function getElementsByClass(name) {
var found = 0;
var elems = new Array();
var alltags = document.getElementsByTagName("*");
if (alltags) {
for (j=0; j < alltags.length; j++) {
if (alltags[j].className==name) {
elems[found++]=alltags[j];
}
}
}
return(elems);
}
function addEventHandler(obj, eventType, handler) {
if (window.opera && obj.addEventListener) {
obj.addEventListener(eventType, handler, false);
return true;
} else if (obj.addEventListener) {
obj.addEventListener(eventType, handler, true);
return true;
} else if (obj.attachEvent) {
var r = obj.attachEvent("on"+eventType, handler);
return r;
} else {
return false;
}
}
function mover() {
var outimgs = new Array;
var outimgsname = new Array;
var overimgs = new Array;
var over = getElementsByClass('over');
for (j=0; j < over.length; j++) {
outimgs[j] = new Image();
overimgs[j] = new Image();
outimgs[j].src = over[j].lastChild.src;
overimgs[j].src = over[j].lastChild.src.replace ('\.jpg','_on.jpg');
outimgsname[j] = over[j].lastChild.name;
over[j].setAttribute('onmouseover', 'document.images[\''+outimgsname[j]+'\'].src=\''+overimgs[j].src+'\';');
over[j].setAttribute('onmouseout', 'document.images[\''+outimgsname[j]+'\'].src=\''+outimgs[j].src+'\';');
}
}
addEventHandler(window,'load',mover);
<a href="#" class="over"><img src="elso.jpg" name="elso" alt="Első kép" /></a>
Opera és Firefox alatt működik is rendesen. IE alatt viszont nem, annak ellenére, hogy az IE Developer Toolbar szerint az onmouseout és onmouseover események rendesen hozzáadódnak (megfelelő értékekkel) az <a> taghez.