Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
K-Unker
Зарегистрирован: 05.09.2004 Сообщения: 142 Откуда: Украина, г. Киев
|
Добавлено: Вс Фев 27 2005 23:31 Заголовок сообщения: Затык с JavaScript |
|
|
Добрый день всем! Прошу не закидывать помидорами, вопрос детский.
Начал учить JavaScript и зашел в тупик. Проблема в следующем (эффект Roll-over) - при наведении курсора мыши выделяются несколько кнопок вместо одной. Как сделать так, что бы при наведении мыши выделялась только одна кнопка.
Вот исходный код:
<html>
<head>
<script language="JavaScript">
<!--//
function ImgPreload()
{
pic2=new Image();
pic2.src="beginon.gif";
pic3=new Image();
pic3.src="foton.gif";
}
function ImgOn()
{
temp1=mybutton1.src ;
mybutton1.src=pic2.src;
temp2=mybutton2.src;
mybutton2.src=pic3.src;
}
function ImgOff()
{
mybutton1.src=temp1;
mybutton2.src=temp2;
}
//-->
</script>
</head>
<body >
<a href="index.html"><img name="mybutton1" src="beginof.gif" width="170" height="50" onmouseover="ImgOn();" onmouseout="ImgOff();"
onload="ImgPreload();" border=0> </a>
<a href="fotos.html"><img name="mybutton2" src="fotof.gif" width="170" height="50" onmouseover="ImgOn();" onmouseout="ImgOff();"
onload="ImgPreload();" border=0 ></a>
</body>
</html> |
|
Вернуться к началу |
|
|
AndyTower
Зарегистрирован: 11.01.2005 Сообщения: 23
|
Добавлено: Пн Фев 28 2005 08:55 Заголовок сообщения: Re: Затык с JavaScript |
|
|
K-Unker писал(а): | Начал учить JavaScript и зашел в тупик. Проблема в следующем (эффект Roll-over) - при наведении курсора мыши выделяются несколько кнопок вместо одной. Как сделать так, что бы при наведении мыши выделялась только одна кнопка.
Вот исходный код:
<html>
<head>
<script language="JavaScript">
<!--//
function ImgPreload()
{
pic2=new Image();
pic2.src="beginon.gif";
pic3=new Image();
pic3.src="foton.gif";
}
function ImgOn()
{
temp1=mybutton1.src ;
mybutton1.src=pic2.src;
temp2=mybutton2.src;
mybutton2.src=pic3.src;
}
function ImgOff()
{
mybutton1.src=temp1;
mybutton2.src=temp2;
}
//-->
</script>
</head>
<body >
<a href="index.html"><img name="mybutton1" src="beginof.gif" width="170" height="50" onmouseover="ImgOn();" onmouseout="ImgOff();"
onload="ImgPreload();" border=0> </a>
<a href="fotos.html"><img name="mybutton2" src="fotof.gif" width="170" height="50" onmouseover="ImgOn();" onmouseout="ImgOff();"
onload="ImgPreload();" border=0 ></a>
</body>
</html> |
Есть несколько замечаний по данному скрипту.
Во-первых, зачем два раза вызывать функцию ImgPreload(). Не проще ли сделать это один раз при загрузке страницы. Данно событие лучше перенести в тэг <body>
Во-вторых, ты вызываешь функцию ImgOn(). Она меняет сразу и одно и второе изображение. Поэтому лучше передавай флаг, какую именно картинку менять. Так будет проще и понятнее. В функции анализируй этот флаг.
Надо написать что-то вроде такого.
Код: |
function ImgOn(picNumber)
{
if(picNumber==1) {
temp1=mybutton1.src ;
mybutton1.src=pic2.src;
}
if(picNumber==2) {
temp2=mybutton2.src;
mybutton2.src=pic3.src;
}
} |
Это просто на вскидку. Вызывать функцию с указанием картинки.
Так же можно переделать и отключение.
Я думаю, что так пойдет. _________________ http://www.andytower.ru |
|
Вернуться к началу |
|
|
K-Unker
Зарегистрирован: 05.09.2004 Сообщения: 142 Откуда: Украина, г. Киев
|
Добавлено: Пн Фев 28 2005 14:20 Заголовок сообщения: Re: Затык с JavaScript |
|
|
AndyTower писал(а): | Надо написать что-то вроде такого.
Код: |
function ImgOn(picNumber)
{
if(picNumber==1) {
temp1=mybutton1.src ;
mybutton1.src=pic2.src;
}
if(picNumber==2) {
temp2=mybutton2.src;
mybutton2.src=pic3.src;
}
} |
Это просто на вскидку. Вызывать функцию с указанием картинки.
Так же можно переделать и отключение.
Я думаю, что так пойдет. |
Получается, что для каждой картинки нужно создавать свою функцию? Тоесть ImgOn(pic2) , ImgOn(pic3) и т.д. ? Это ж вроде как не есть хорошо... |
|
Вернуться к началу |
|
|
FUKS
Зарегистрирован: 14.04.2002 Сообщения: 148 Откуда: Москва
|
Добавлено: Пн Фев 28 2005 16:08 Заголовок сообщения: Re: Затык с JavaScript |
|
|
K-Unker писал(а): | Получается, что для каждой картинки нужно создавать свою функцию? Тоесть ImgOn(pic2) , ImgOn(pic3) и т.д. ? Это ж вроде как не есть хорошо... |
А куда ж деваться? Но отдельная функция на каждую кнопку - это конечно изврат. Можно передавать одной функции номер кнопки в качестве параметра, и выглядеть она будет так: Код: | function ImgOn(n)
{
eval("temp"+n+"=mybutton"+n+".src");
eval("mybutton"+n+".src=pic"+n+".src");
} |
Ну и с номерами кнопок и картинок конечно разобраться, чтоб единоообразно было, или внутри функции отдельную переменную заводить. |
|
Вернуться к началу |
|
|
K-Unker
Зарегистрирован: 05.09.2004 Сообщения: 142 Откуда: Украина, г. Киев
|
Добавлено: Ср Мар 02 2005 16:03 Заголовок сообщения: |
|
|
Все! Всем спасибо, проблема решена, с кодом JavaScript разобрался . Если кому интереcно - http://q-ku.narod.ru/ - смотрите исходный код странички. |
|
Вернуться к началу |
|
|
|