Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Картинка не изменяется при наведении. (https://javascript.ru/forum/misc/14347-kartinka-ne-izmenyaetsya-pri-navedenii.html)

astashovaj 12.01.2011 09:16

Картинка не изменяется при наведении.
 
Подскажите, как быть есть вот этот скрипт:

<script language="JavaScript" type="text/JavaScript">
<!--
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_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_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="1.html" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image8','','images/q1.jpg',1)"><img src="images/q1.jpg" name="Image8" width="217" height="26" border=""></a>

где q1.jpg - картинка без наведения, q11.jpg - при наведении, и q111.jpg - после щелчка.

Просидел два дня, и так как я до этого не никогда не занимался и не знал вобще ничего о яве, то ничего у меня и не получилось. Очень прошу помочь.

Skipp 12.01.2011 09:20

Что ж за ужас та такой, если берёте скрипты, хотяб пытайтесь в них разобраться.
<img src="q1.jpg" onmouseover="this.src='q11.jpg'" onclick="this.src='q111.jpg'" >


Пример:
<img src="http://img.yandex.net/i/www/logo.png" onmouseout="this.src='http://img.yandex.net/i/www/logo.png'" onmouseover="this.src='http://www.google.ru/images/logos/ps_logo2.png'" onclick="this.src='http://javascript.ru/forum/images/ca_serenity/misc/logo.gif'" >

astashovaj 12.01.2011 09:33

я пытался, и неписал бы сюда еслиб разобрался... вам спасибо, не нервничайте потому что я не пойму этот код вставлять куда? вместо onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image8','','images/q1.jpg',1)"><img src="images/q1.jpg" name="Image8" width="217" height="26" border="0" или как? заранее благодарен.

astashovaj 12.01.2011 09:34

а если уж совсем вас не обременю попросить готовый прописать то поклон до колен!

Skipp 12.01.2011 09:45

мдааааа, ничего менять не надо
это и есть готовый вариант
<img src="q1.jpg" onmouseover="this.src='q11.jpg'" onclick="this.src='q111.jpg'" >

удалите скрипт и замените следующую строку выше приведённой
<a href="1.html" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image8','','images/q1.jpg',1)"><img src="images/q1.jpg" name="Image8" width="217" height="26" border=""></a>

astashovaj 12.01.2011 09:59

Скажите если скрипт не нужен то ка же будет выполнена предзагрузка изображений?

Skipp 12.01.2011 10:03

А зачем вам пред загрузка, вы для модемщиков это делаете или изображения много весят?

astashovaj 12.01.2011 10:06

нет не много, но картинок будет с два десятка (кнопки) и бегло всматриваясь в коментарии многие пишут что хорошо ккогда браузер предзагружает картинки, и потом работает с кэша. а так будет вроде задержка. И еще... если так как вы говорите что прелоад вобще не нужен то зачем мне вышеописанный скрипт... его с документа может быть вобще удалить??? (<script language="JavaScript" type="text/JavaScript">...........)

astashovaj 12.01.2011 10:22

Skipp,
Это последний вопрос и я пошел)

Skipp 12.01.2011 10:43

конечно удалите, а при загрузки изображение итак попадёт в кеш, если конечно его сам пользователь не вырубит.


Часовой пояс GMT +3, время: 23:39.