[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сокращение скрипта
Юрий Шу
Есть скрипт «переката» изображения.
HTML
<script LANGUAGE="JavaScript">
p2 = new Image;
p2.src = "roll.gif";

p3 = new Image;
p3.src = "lunch.gif";
</SCRIPT>

<img src="lunch_gray.gif" name="pic3" onMouseOver="pic3.src=p3.src" onMouseOut="pic3.src='lunch_gray.gif'" alt="Ланч" />
<img src="roll_gray.gif" name="pic2" onMouseOver="pic2.src=p2.src" onMouseOut="pic2.src='roll_gray.gif'" alt="Ролл" />

Хочу сократить код, написав нужные функции.
Пишу так, но что-то не работает…
HTML
<script LANGUAGE="JavaScript">
p2 = new Image;
p2.src = "roll.gif";

function show(num){
var over;
over='pic[num].src=p[num].src';
return over;
}
</SCRIPT>
<img src="lunch_gray.gif" name="pic3" onMouseOver="show('3')" onMouseOut="pic3.src='lunch_gray.gif'" alt="Ланч" />


Подскажите пожалуйста в чем ошибка?

P.S. Пишу на яваскрипте впервые, прошу не судить строго.



Спустя 13 минут, 3 секунды (27.02.2009 - 09:47) sergeiss написал(а):
Ошибка в том, что ты не выставляешь значение переменной, а просто создаешь текст с описанием того, что ты хочешь smile.gif А ДжаваСкрипт, зараз такая, не хочет это понимать.

Должно быть примерно так (код я не проверял, но должен быть рабочий):
HTML
function show( pic_old, pic_new)
{
document.getElementById( pic_old ).src=document.getElementById( pic_new ).scr;
}

Вызов для pic3:
HTML
onMouseOver="show( 'pic3', 'p3' );"

Спустя 10 минут, 14 секунд (27.02.2009 - 09:57) Юрий Шу написал(а):
Цитата (sergeiss @ 27.02.2009 - 06:47)
Ошибка в том, что ты не выставляешь значение переменной, а просто создаешь текст с описанием того, что ты хочешь smile.gif А ДжаваСкрипт, зараз такая, не хочет это понимать.

Должно быть примерно так (код я не проверял, но должен быть рабочий):
HTML
function show( pic_old, pic_new)
{
document.getElementById( pic_old ).src=document.getElementById( pic_new ).scr;
}

Вызов для pic3:
HTML
onMouseOver="show( 'pic3', 'p3' );"

Сделал так:
HTML
<script LANGUAGE="JavaScript">
p3 = new Image;
p3.src = "lunch.gif";

function show(pic_old, pic_new)
{
document.getElementById(pic_old).src=document.getElementById(pic_new).src;
}
</SCRIPT>
<img src="lunch_gray.gif" name="pic3" onMouseOver="show('pic3','p3');" onMouseOut="pic3.src='lunch_gray.gif'" alt="Ланч" />

Не работает huh.gif

Спустя 19 минут, 42 секунды (27.02.2009 - 10:17) sergeiss написал(а):
Цитата (Юрий Шу @ 27.02.2009 - 09:57)
Сделал так:
HTML
<script LANGUAGE="JavaScript">
p3 = new Image;
p3.src = "lunch.gif";

function show(pic_old, pic_new)
{
document.getElementById(pic_old).src=document.getElementById(pic_new).src;
}
</SCRIPT>
<img src="lunch_gray.gif" name="pic3" onMouseOver="show('pic3','p3');" onMouseOut="pic3.src='lunch_gray.gif'" alt="Ланч" />

Не работает  huh.gif


Сделай проще smile.gif Вот это уже я проверил - работает!
HTML
<script LANGUAGE="JavaScript">
function show(pic_old, pic_new)
{
document.getElementById(pic_old).src=pic_new;
}
</SCRIPT>
<img src="lunch_gray.gif" name="pic3" onMouseOver="show('pic3','lunch.gif');" onMouseOut="pic3.src='lunch_gray.gif'" alt="Ланч" />

Да и в onMouseOut можно использовать эту же функцию, чтобы уж однотипно сделать :
HTML
onMouseOut="show('pic3','lunch_grey.gif');"

Спустя 5 минут, 26 секунд (27.02.2009 - 10:22) Юрий Шу написал(а):
sergeiss, работает.
А прелоуда картинки разве в этом случае не нужно делать?

Спустя 29 минут, 53 секунды (27.02.2009 - 10:52) sergeiss написал(а):
Ну, дык... Сделай. Вопрос-то изначально был насчет работоспособности скрипта smile.gif

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

Спустя 20 минут, 33 секунды (27.02.2009 - 11:13) Юрий Шу написал(а):
sergeiss, спасибо.
Кстати, функцию добавили, но текста стало больше smile.gif

Спустя 20 минут, 13 секунд (27.02.2009 - 11:33) sergeiss написал(а):
Цитата (Юрий Шу @ 27.02.2009 - 11:13)
sergeiss, спасибо.
Кстати, функцию добавили, но текста стало больше smile.gif

"Пуговицы крепко пришиты, хорошо сидят? К пуговицам претензии есть?" (С) wink.gif

Спустя 4 дня, 5 часов, 1 минута, 15 секунд (1.03.2009 - 16:34) bret написал(а):
заюзав this, можно сэкономить на name + использовать преолад изображений в цикле

Спустя 3 часа, 37 минут, 27 секунд (1.03.2009 - 20:12) sergeiss написал(а):
Кстати, не подумал я на эту тему вот что добавить smile.gif Ежели в ДримВивере вставить Rollover Image, то добавляется вот такой код:
HTML
<script 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>

В начале БОДИ вставляется вот такое:
HTML
<body onload="MM_preloadImages('../Pictures/RMS-UL.jpg')">

А там, где я вставлял эту картинку, вставляет вот такой код (я указывал только имена файлов в специальных окнах)
HTML
<a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image1','','../Pictures/RMS-UL.jpg',1)"><img src="../Pictures/RMS-DL.jpg" name="Image1" width="119" height="75" border="0" id="Image1" /></a>

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.