Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 9 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 04.02.2003
Откуда: Москва
Один замечательный товарищ по имени Avaddon подсказал мне один скриптик, который заимается заменой картинки при наведении на неё мышкой. Вот он:
Код:
<script>function doFocus() {
Normal.style.display = "none";
Focused.style.display = "block";
}
function doBlur() {
Normal.style.display = "block";
Focused.style.display = "none";
}

</script>
<body>
<TD>
<DIV ID="Normal" STYLE="position: relative; top:0; left:0; display: block;"><IMG SRC="logo-u-2.gif"
OnMouseOver="doFocus()" >
</DIV>
<DIV ID="Focused" STYLE="position: relative; top:0; left:0; display: none;"><IMG SRC="logo-u-3.gif" OnMouseOut="doBlur()">
</DIV>

Но он работает только при наличии на странице одной такой картинки, которую надо заменить. При прописывании этого кода для другой картинки появляется совпадение имён, ошибка, и, соответственно, ничего уже не работает.
Так вот, вопрос такой: как дополнить этот скрипт, чтобы можно было его применять к нескольким заменяемым картинкам?



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Вот тебе грубый пример, капнеш дальше сам поймеш я думаю (набросал на скорую руку)
Пашет и под IE и под Mozilla.
Код:
<html>

<head>
<title>New Page 2</title>
<script id=clientEventHandlersJS language=javascript>
<!--
var norm=new Array();
var over=new Array();

function im1_onmouseover(img_obj,num) {
   
   img_obj.src=over[num].src;
}

function window_onload() {
   norm[0]=new Image();
   norm[1]=new Image();
   norm[0].src="s1.jpg";
   norm[1].src="s3.jpg";
   
   over[0]=new Image();
   over[1]=new Image();
   over[0].src="s2.jpg";
   over[1].src="s4.jpg";
   
}

function im1_onmouseout(img_obj,num) {
   img_obj.src=norm[num].src;
}


//-->
</script>
</head>

<body onload="return window_onload()">
<img onmouseover="return im1_onmouseover(this,0)" src="s1.jpg" onmouseout="return im1_onmouseout(this,0)"><br>
<img onmouseover="return im1_onmouseover(this,1)" src="s3.jpg" onmouseout="return im1_onmouseout(this,1)"><br>

</body>

</html>


 

Member
Статус: Не в сети
Регистрация: 04.02.2003
Откуда: Москва
Ray Adams К сожалению, твой скрипт тормозит так же, как и дефолтовый dreamweaver'овский :( Я не знаю, чем это обусловлено, но это уже тема другого разговора. Я так понял, что в любом случае надо описывать каждую картинку в скрипте? Тогда мне и Avaddon'овский подойдёт.

_________________
Каждый человек по-своему прав. А по-моему, нет.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Василий Тормозит? В каком плане это выражается? В плане загрузки или когда мышой наведеш, он тормозит? Видимо у тебя с кешем что-то не то. Вариант от Avaddon подойдет, но там слишком много лишнего описания. Особенно зачем надо два DIV делать?


 

Member
Статус: Не в сети
Регистрация: 04.02.2003
Откуда: Москва
Ray Adams
Цитата:
когда мышой наведеш, он тормозит

А с кэшем что-то не у меня, а у IE! :) Я пробовал на всех компах и на всех компах в IE долго подгружается картинка при наведении. Может в хостинге дело, т.к. раньше всё нормально было, но они клянутся и божатся, что нагрузка на их сервер не превышает нормы и что у них ничего не тормозит. Мне всё равно, чего у них там, по-этому надо искать обходные пути.
А вообще, про изменение скрипта я имел в виду нечто следующее:
Код:
<script>function doFocus() {
Normal(x).style.display = "none";
Focused(y).style.display = "block";
}
function doBlur() {
Normal(x).style.display = "block";
Focused(y).style.display = "none";
}

</script>
<body>
<TD>
<DIV ID="Normal(1)" STYLE="position: relative; top:0; left:0; display: block;"><IMG SRC="logo-u-2.gif" OnMouseOver="doFocus()" >
</DIV>
<DIV ID="Focused(1)" STYLE="position: relative; top:0; left:0; display: none;"><IMG SRC="logo-u-3.gif" OnMouseOut="doBlur()">
</DIV>
<TD>
<DIV ID="Normal(2)" ......................................
</DIV>
<DIV ID="Focused(2)" .....................................
</DIV>
и т.д.

Нечто подобное можно сделать в JS?


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Можно но для каждой картинки тебе придется писать свою процедуру, из-за чего код вырастет намного.


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
Ray Adams
Да я уже ему отправил универсальную... Определяю картинки через суффиксы имен, но можно было сделоть гораздо красивее через document.all(index)
А насчет прелоада, то это не IE с кышем тормозит, а кажется сайт, на котором вся байда лежит. У меня с оперой тормоза еще те. Ограничение что ли на количество потоков поставлено?

_________________
Цель жизни - d20 по жизни...


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Avaddon А какой сайт то?


 

Member
Статус: Не в сети
Регистрация: 04.02.2003
Откуда: Москва
Ray Adams Вот этот
Самое интересное, что раньше всё летало! :(

Добавлено спустя 1 минуту, 58 секунд:
Я понял, это всё из-за названия! Оно прокляло сайт, вот он и работает еле-еле! :D


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 9 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan