Сверкающая ссылка. Скрипт не работает в фаерфоксе
Всем привет. Повесили на меня сайт на работе, в яве сам не силен. Есть скрипт, который работает в опере и ИЕ, но не работает в фаерфоксе.
function domouseover() { srcElement = window.event.srcElement; if (srcElement.className.indexOf("fade") > -1) { var linkName = srcElement.name; fadein(linkName); } } function domouseout() { srcElement = window.event.srcElement; if (srcElement.className.indexOf("fade") > -1) { var linkName = srcElement.name; fadeout(linkName); } } function makearray(n) { this.length = n; for(var i = 1; i <= n; i++) this[i] = 0; return this; } hexa = new makearray(16); for(var i = 0; i < 10; i++) hexa[i] = i; hexa[10]="a"; hexa[11]="b"; hexa[12]="c"; hexa[13]="d"; hexa[14]="e"; hexa[15]="f"; function hex(i) { if (i < 0) return "00"; else if (i > 255) return "ff"; else return "" + hexa[Math.floor(i/16)] + hexa[i%16];} function setbgColor(r, g, b, element) { var hr = hex(r); var hg = hex(g); var hb = hex(b); element.style.color = "#"+hr+hg+hb; } function fade(sr, sg, sb, er, eg, eb, step, direction, element){ for(var i = 0; i <= step; i++) { setTimeout("setbgColor(Math.floor(" +sr+ " *(( " +step+ " - " +i+ " )/ " +step+ " ) + " +er+ " * (" +i+ "/" +step+ ")),Math.floor(" +sg+ " * (( " +step+ " - " +i+ " )/ " +step+ " ) + " +eg+ " * (" +i+ "/" +step+ ")),Math.floor(" +sb+ " * ((" +step+ "-" +i+ ")/" +step+ ") + " +eb+ " * (" +i+ "/" +step+ ")),"+element+");",i*step); } } function fadeout(element) { fade(70,130,180, 200,200,200, 30, 1, element); } function fadein(element) { fade(200,200,200, 70,130,180, 23, 1, element); } document.addEventListener("mouseover", domouseover, false); document.addEventListener("mouseover", domouseout, false); В коде страницы обращение выглядит так: <a href = "crem-plast.html" name="fading_link_5" class="fade">  crem-plast</a> Может кто-нибудь подсказать в чем дело? Мне советовали попробовать addEventListener(https://developer.mozilla.org/en/DOM...dEventListener) использовать, но я что-то не очень въехал, как его под мой скрипт применить. Скрипт используется на www.decor-fortuna.ru Заранее спасибо за помощь! |
Допустим так, хотя я бы все по иному переделал:
<script type="text/javascript"> document.onmouseover = function(event) { var event = event || window.event var target = event.target || event.srcElement; if (target.className.indexOf("fade") > -1) { var linkName = target.id; fadein(linkName); } }; document.onmouseout = function(event) { var event = event || window.event var target = event.target || event.srcElement; if (target.className.indexOf("fade") > -1) { var linkName = target.id; fadeout(linkName); } }; function makearray(n) { this.length = n; for(var i = 1; i <= n; i++) { this[i] = 0; } return this; } hexa = new makearray(16); for(var i = 0; i < 10; i++){ hexa[i] = i; hexa[10]="a"; hexa[11]="b"; hexa[12]="c"; hexa[13]="d"; hexa[14]="e"; hexa[15]="f"; } function hex(i) { if (i < 0) { return "00"; } else if (i > 255) { return "ff"; } else { return "" + hexa[Math.floor(i/16)] + hexa[i%16]; } } function setbgColor(r, g, b, element) { var hr = hex(r); var hg = hex(g); var hb = hex(b); element.style.color = "#"+hr+hg+hb; } function fade(sr, sg, sb, er, eg, eb, step, direction, element){ for(var i = 0; i <= step; i++) { setTimeout("setbgColor(Math.floor(" +sr+ " *(( " +step+ " - " +i+ " )/ " +step+ " ) + " +er+ " * (" +i+ "/" +step+ ")),Math.floor(" +sg+ " * (( " +step+ " - " +i+ " )/ " +step+ " ) + " +eg+ " * (" +i+ "/" +step+ ")),Math.floor(" +sb+ " * ((" +step+ "-" +i+ ")/" +step+ ") + " +eb+ " * (" +i+ "/" +step+ ")),"+element+");",i*step); } } function fadeout(element) { fade(70,130,180, 200,200,200, 30, 1, element); } function fadein(element) { fade(200,200,200, 70,130,180, 23, 1, element); } </script> <a href="crem-plast.html" id="fading_link_5" class="fade">  crem-plast</a> |
Спасибо огромное, очень выручили!
|
Кстати скрипт в отдельном файле не хочет работать чета)
|
Часовой пояс GMT +3, время: 03:12. |