Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.09.2010, 16:09
Новичок на форуме
Отправить личное сообщение для Wukong Посмотреть профиль Найти все сообщения от Wukong
 
Регистрация: 06.09.2010
Сообщений: 3

Сверкающая ссылка. Скрипт не работает в фаерфоксе
Всем привет. Повесили на меня сайт на работе, в яве сам не силен. Есть скрипт, который работает в опере и ИЕ, но не работает в фаерфоксе.

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">&nbsp crem-plast</a>


Может кто-нибудь подсказать в чем дело? Мне советовали попробовать addEventListener(https://developer.mozilla.org/en/DOM...dEventListener) использовать, но я что-то не очень въехал, как его под мой скрипт применить.
Скрипт используется на www.decor-fortuna.ru
Заранее спасибо за помощь!
Ответить с цитированием
  #2 (permalink)  
Старый 06.09.2010, 16:44
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Допустим так, хотя я бы все по иному переделал:

<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">&nbsp crem-plast</a>
Ответить с цитированием
  #3 (permalink)  
Старый 08.09.2010, 14:47
Новичок на форуме
Отправить личное сообщение для Wukong Посмотреть профиль Найти все сообщения от Wukong
 
Регистрация: 06.09.2010
Сообщений: 3

Спасибо огромное, очень выручили!
Ответить с цитированием
  #4 (permalink)  
Старый 09.09.2010, 15:09
Новичок на форуме
Отправить личное сообщение для Wukong Посмотреть профиль Найти все сообщения от Wukong
 
Регистрация: 06.09.2010
Сообщений: 3

Кстати скрипт в отдельном файле не хочет работать чета)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите по CSS меню Александр_1988 Элементы интерфейса 1 17.05.2010 11:58
Java скрипт не работает в Opera Eagle28 Ваши сайты и скрипты 3 07.04.2010 19:36
Почему не работает скрипт, подскажите aviaks Ваши сайты и скрипты 2 05.05.2009 14:38
Скрипт не работает в опере, работает в IE XpycTuk Общие вопросы Javascript 9 06.03.2009 15:50
Скрипт меню-гармошки работает выборочно Extern Элементы интерфейса 2 23.02.2009 15:32