Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   DHTML/JS/CSS (http://www.flasher.ru/forum/forumdisplay.php?f=24)
-   -   JavaScript: изменение двух изображением одним нажатием по ссылке (http://www.flasher.ru/forum/showthread.php?t=58004)

Disigner 11.05.2004 16:27

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

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">



StimS 11.05.2004 19:26

А еще можно одним скриптом убить двух багов... э-э-э... я вот о чем, о передаче двух параметров через аргумент:

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">

Может, немного мудрено, но зато на любые случаи жизни

Илья К 11.05.2004 21:02

Нет предела совершенству...:)
 
Ну что ж, и тут без комментариев... ;)

Disigner 14.05.2004 13:19

Решил сделать так:
<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

Что значит, корректно ли? Уточни, пожалуйста.

Disigner 14.05.2004 20:32

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


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

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