Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Работа над сайтом > DHTML/JS/CSS

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 11.05.2004, 16:27
  № 1  
Disigner
Guest

Сообщений: n/a
По умолчанию JavaScript: изменение двух изображением одним нажатием по ссылке

Здравствуйте!
С JavaScript знаком плохо, ниже приведён код скрипта, при помощи которого при наведении на объект курсором (напр. ссылка в виде изображения) меняетьтя определённое изображение, имя кот. мы задаём сами и меняет его назад при уводе курсора.
Смешно написал, надеюсь что поняли. Думаю можно было проще написать, что речь идёт о onMouseOver и onMouseOut.
В данном случаи при наведении курсора на picture1.gif изображение с именем name="Image1" (здесь это оно и есть) меняеться на picture2.gif. Этим достигаеться подсветка кнопок.
Вопрос: как поменять код, чтоб менялось не одно изодражение , а два? Т.е. при наведени менялось одно изображение, а при нажатии другое, совсем с другим name ?

<script language="JavaScript" type="text/JavaScript">
<!--
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
.....
.....
.....
<a href="index.html"><img src="images/picture1.gif" width=59 height=14 border="0" name="Image1" id="Image1" onmouse over ="MM_swapImage('Image1','','images/picture2.gif',1)" onMouseOut="MM_swapImgRestore()"></a>

Старый 11.05.2004, 18:52
Илья К вне форума Посмотреть профиль Отправить личное сообщение для Илья К Найти все сообщения от Илья К
  № 2  
Илья К

Регистрация: Dec 2002
Адрес: Berlin
Сообщений: 444
По умолчанию 1.Две ф-ции; 2.всё в одной (a.через ID;b.через name; c.через номер в массиве images)

С приведенным кодом к сожалению не ознакомился -- лень. Поэтому только общие рекомендации. Тут по крайней мере два пути:
1.создать еще одну функцию, которая меняет вторую картинку (при нажатии на первую) и подвесить ее на onClick первой (кстати, на одно событие одного и того же тэга можно вешать сколько угодно функций, например: onClick="function_0(); function_1(); function_2();" и т.д.);
2.прописать все в одной ф-ции, примерно так:
<script language="JavaScript">
function onclick_imageA()
{

//через ID
document.imageA.src = "нужный url";
document.imageB.src = "нужный url";

/*
//или через name
document.images["imageA"].src = "нужный url";
document.images["imageB"].src = "нужный url";
*/
/*
//или через порядковый номер картинке в массиве document.images
document.images[0].src = "нужный url";
document.images[1].src = "нужный url";
*/
}
</script>

<img src="imageA.gif" id="imageA" name="imageA" onclick="onclick_imageA()">
<img src="imageB.gif" id="imageB" name="imageB">




Последний раз редактировалось Илья К; 11.05.2004 в 18:58.
Старый 11.05.2004, 19:26
StimS вне форума Посмотреть профиль Отправить личное сообщение для StimS Посетить домашнюю страницу StimS Найти все сообщения от StimS
  № 3  
StimS
 
Аватар для StimS

Регистрация: Aug 2001
Адрес: Россия/Москва/Красная Площадь/Мавзолей/Кв. №2
Сообщений: 702
Отправить сообщение для StimS с помощью ICQ
А еще можно одним скриптом убить двух багов... э-э-э... я вот о чем, о передаче двух параметров через аргумент:

function swap(img_name,new_name){
img_name.src=new_name;
}


<img name="ImageA" src="someOne.jpg" onClick="swap('ImageA','new1.jpg');swap('ImageB','new2');">
<img name="ImageB" src="someTwo.jpg">

Может, немного мудрено, но зато на любые случаи жизни
__________________
:confused: :( :eek: :D :rolleyes: :p ;) :) :o :cool: :mad:

Во имя процессора-отца, процесса-сына и святого root'а. Аминь.

Старый 11.05.2004, 21:02
Илья К вне форума Посмотреть профиль Отправить личное сообщение для Илья К Найти все сообщения от Илья К
  № 4  
Илья К

Регистрация: Dec 2002
Адрес: Berlin
Сообщений: 444
По умолчанию Нет предела совершенству...:)

Ну что ж, и тут без комментариев...

Старый 14.05.2004, 13:19
  № 5  
Disigner
Guest

Сообщений: n/a
Решил сделать так:
<a href="index.htm" target="cont"><IMG SRC="images/pic.gif" WIDTH=82 HEIGHT=23 border="0" name="razr" onMouseOver="document.images.razr.src='images/5-r.gif'" onMouseOut="document.images.razr.src='images/5.gif'" onClick="document.images.pole.src='images/good.gif'"></a>

И ни каких скриптов я не пишу.

Вопрос: корректно ли я возвращаю изображение при уводе мыши с изображения? (я про onMouseOut=" ")

Старый 14.05.2004, 18:11
Илья К вне форума Посмотреть профиль Отправить личное сообщение для Илья К Найти все сообщения от Илья К
  № 6  
Илья К

Регистрация: Dec 2002
Адрес: Berlin
Сообщений: 444
Что значит, корректно ли? Уточни, пожалуйста.

Старый 14.05.2004, 20:32
  № 7  
Disigner
Guest

Сообщений: n/a
Илья К
По моему можно это делать как-то не с помощью onMouseOut, а что-то типо return=false, но как именно....

Создать новую тему   Часовой пояс GMT +4, время: 21:48.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 21:48.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.