Подсветка пунктов меню
За два года работы по созданию веб-сайтов мы применяли JavaScript всего несколько раз, в основном
для подсветки пунктов меню при наведении курсора мышки.
Практика показала, что на большинстве сайтов JavaScript вообще не используется.
Прежде, чем приступить
к написанию этой главы, я просмотрел ресурсы в Интернет и книги, посвященные JavaScript, надеясь найти
действительно оправданное применение Java-скриптов. Но мои поиски не увенчались успехом. Мне попадались примеры
изменения шрифта, цвета фона, калькуляторы и другие, на мой взгляд, совершенно бесполезные вещи в
плане создания веб-сайта для профессионального разработчика.
<script language="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]; } }//if } function MM_findObj(n, d) { 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); return x; } function MM_swapImage() { 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>В команде body надо сделать предварительную загрузку всех картинок второго плана. Как видно ниже, через запятую в апострофах передаются пути к этим картинкам. <body onload="MM_preloadImages( 'image/p03a.gif', 'image/b26a.gif', 'image/b25a.gif', 'image/b24a.gif', 'image/b23a.gif', 'image/b22a.gif', 'image/p13a.gif', 'image/b24a.gif', 'image/b25a.gif', 'image/b26a.gif');">Теперь переходим к рассмотрению кода для переключения картинки при наведение курсора мыши. В чистом виде он будет выглядеть так: <img src="image/p03.gif" alt="Home" width="92" height="43" border="0" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('home','','image/p03a.gif',0)" name="home">При наведении курсора мышки на домик, его картинка поменяется на другую, как-будто он подсветился. ![]() Далее следует пример с сайта http://www.oxygensoftware.com, где можно посмотреть реальное использование смены картинок пунктов меню и насколько это улучшает внешний вид сайта. Самое главное, что даже если у пользователя не поддерживается JavaScript или он отключен, то сайт все равно будет нормально просматриваться. Не будет только переключения картинок. <table border="0" width="780" height="108" cellspacing="0" cellpadding="0"> <tr> <td width="122" height="108"><img border="0" usemap="#mm" src="image/p00.gif" width="122" height="108"></td> <map name="mm"> <area shape="rect" coords="0,0,120,88" href="/index.shtml"> <area shape="rect" coords="3,89,46,103" href="/map/index.shtml"> <area shape="rect" coords="86,88,114,105" href="http://www.oxygensoftware.ru" alt="Russian"></map> <td width="658" height="108"><img src="image/p01.gif" width="299" height="43"><img src="image/p02.gif" width="267" height="43"><a href=/index.shtml onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('h1','','image/p03a.gif',0)"><img src="image/p03.gif" alt="Home" width="92" height="43" border="0" name="h1"></a><img src="image/p11.gif" width="299" height="42"><img src="image/p12.gif" width="267" height="42"><a href="/feedback/index.shtml" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('h2','','image/p13a.gif',0)"><img src="image/p13.gif" width="92" height="42" border="0" name="h2" alt="Feedback"></a><img src="image/b21.gif" width="277" height="23" usemap="#Map" border="0"><map name="Map"><area shape="rect" coords="-4,4,250,20" href="mailto:company@oxygensoftware.com"></map><a href=/maillist/index.shtml onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('m1','','image/b22a.gif',0)"><img src="image/b22.gif" width="85" height="23" border="0" name="m1"></a><a href=/links/index.shtml onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('m2','','image/b23a.gif',0)"><img src="image/b23.gif" width="74" height="23" border="0" name="m2"></a><a href=/feedback/index.shtml onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('m3','','image/b24a.gif',0)"><img src="image/b24.gif" width="74" height="23" border="0" name="m3"></a><a href=/guestbook/index.shtml onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('m4','','image/b25a.gif',0)"><img src="image/b25.gif" width="74" height="23" border="0" name="m4"></a><a href=/forum/index.shtml onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('m5','','image/b26a.gif',0)"><img src="image/b26.gif" width="74" height="23" border="0" name="m5"></a></td> </tr> </table> |