Сократить код.
Доброго времени суток.
Имеется очень страшный, импровизированный код: <head> <style type="text/css"> .style1 { width: 100%; } </style> </head> <table class="style1"> <tr> <td> </td> <td style="text-align: center; vertical-align: middle; letter-spacing: 0pt; word-spacing: 0pt; width: 24.6521px; height: 24.3333px;"> <div onclick="r5u5()"><em id="Em5u5"><img alt="" src="(Картинка1)" align="middle" style="opacity:0.60;filter:alpha(opacity=60)"/></em></div></td> <td> </td> </tr> <tr> <td style="text-align: center; vertical-align: middle; letter-spacing: 0pt; word-spacing: 0pt; width: 24.6521px; height: 24.3333px;"> <div onclick="r4u4()"><em id="Em4u4"><img alt="" src="(Картинка2)" align="middle" style="opacity:0.60;filter:alpha(opacity=60)"/></em></div></td> <td style="text-align: center; vertical-align: middle; letter-spacing: 0pt; word-spacing: 0pt; width: 24.6521px; height: 24.3333px;"> <div onclick="r3u3()"><em id="Em3u3"><img alt="" src="(Картинка1)" align="middle" style="opacity:0.60;filter:alpha(opacity=60)"/></em></div></td> <td style="text-align: center; vertical-align: middle; letter-spacing: 0pt; word-spacing: 0pt; width: 24.6521px; height: 24.3333px;"> <div onclick="r2u2()"><em id="Em2u2"><img alt="" src="(Картинка2)" align="middle" style="opacity:0.60;filter:alpha(opacity=60)"/></em></div></td> </tr> <tr> <td> </td> <td style="text-align: center; vertical-align: middle; letter-spacing: 0pt; word-spacing: 0pt; width: 24.6521px; height: 24.3333px;"> <div onclick="r1u1()"><em id="Emr1u1"><img alt="" src="(Картинка1)" align="middle" style="opacity:0.60;filter:alpha(opacity=60)"/></em></div></td> <td> </td> </tr> </table> И ещё страшнее скрипт... <script type="text/javascript"> c = "<img alt=\"\" src=\"(Картинка1)\" align=\"middle\" height=\"24.333\" width=\"24.6521\"style=\"opacity:0.60;filter:alpha(opacity=60)\">" s = "<img alt=\"\" src=\"(Картинка2)\" align=\"middle\" height=\"24.333\" width=\"24.6521\"style=\"opacity:0.60;filter:alpha(opacity=60)\">" ch = "<img alt=\"\" src=\"(картинка3)\" align=\"middle\" height=\"24.333\" width=\"24.6521\">" sh = "<img alt=\"\" src=\"(Картинка4)\" align=\"middle\" height=\"24.333\" width=\"24.6521\">" function r1u1() { document.getElementById('Emr1u1').innerHTML = ch; document.getElementById('Emr2u2').innerHTML = s; document.getElementById('Emr3u3').innerHTML = c; document.getElementById('Emr4u4').innerHTML = s; document.getElementById('Emr5u5').innerHTML = c; } function r2u2() { document.getElementById('Emr1u1').innerHTML = c; document.getElementById('Emr2u2').innerHTML = sh; document.getElementById('Emr3u3').innerHTML = c; document.getElementById('Emr4u4').innerHTML = s; document.getElementById('Emr5u5').innerHTML = c; } function r3u3() { document.getElementById('Emr1u1').innerHTML = c; document.getElementById('Emr2u2').innerHTML = s; document.getElementById('Emr3u3').innerHTML = ch; document.getElementById('Emr4u4').innerHTML = s; document.getElementById('Emr5u5').innerHTML = c; } function r4u4() { document.getElementById('Emr1u1').innerHTML = c; document.getElementById('Emr2u2').innerHTML = s; document.getElementById('Emr3u3').innerHTML = c; document.getElementById('Emr4u4').innerHTML = sh; document.getElementById('Emr5u5').innerHTML = c; } function r5u5() { document.getElementById('Emr1u1').innerHTML = c; document.getElementById('Emr2u2').innerHTML = s; document.getElementById('Emr3u3').innerHTML = c; document.getElementById('Emr4u4').innerHTML = s; document.getElementById('Emr5u5').innerHTML = ch; } </script> Данная страсть выполняет простейшую функцию - меняет картинку при щелчке мыши. Но, этот пример лишь часть огромного кода, т.е. если нужно будет запрограммировать данным образом 100 картинок, то нужно будет прописать 100х100 вариантов в скрипте... А это огромный информационный объём, что не есть хорошо. А уж о смене картинки при наведении на неё мыши, вкупе уже с существующим щелчком, вообще молчу... данным образом написать не получиться практически никак. Можно ли каким-либо образом упростить скрипт, ну или использовать css, в котором я слабо разбираюсь (и в javascript ничего не понимаю, но как обезьяна повторить могу, изменив по-своему =))? Заранее спасибо за помощь, она упростит мне жизнь... причём очень сильно) |
сократить ... трудно будет. легче по-своему написать новый код.
и то, и то, как мне кажется, сейчас потребует какого-то количества бабла. начинайте потихоньку изучать хотя-бы HTML+CSS. при хорошем коде лёгкий скрипт возьмётся написать каждый. если есть готовое бабло ( 400 минимум ), можете написать в раздел "работа", там напишут хороший код в кратчайшие сроки. хм. я заведомо не рассмотрел вариант "добра" от программиста. не думаю, что кто-нибудь не плюнет на пол от такого кода, что в примере. ______ PS.я ничего не прошу. я предвижу ^_^ |
Ну, код я сам, лично писал и не откуда не копировал. Т.е. я его уже сам написал.
Ну, если нельзя, так нельзя.) Спасибо за помощь.) |
Самый простой способ сократить, но не гибкий вообще никак.
var ruElem = [], htmlObj = { c = "<img alt=\"\" src=\"(Картинка1)\" align=\"middle\" height=\"24.333\" width=\"24.6521\"style=\"opacity:0.60;filter:alpha(opacity=60)\">", s = "<img alt=\"\" src=\"(Картинка2)\" align=\"middle\" height=\"24.333\" width=\"24.6521\"style=\"opacity:0.60;filter:alpha(opacity=60)\">", ch = "<img alt=\"\" src=\"(картинка3)\" align=\"middle\" height=\"24.333\" width=\"24.6521\">", sh = "<img alt=\"\" src=\"(Картинка4)\" align=\"middle\" height=\"24.333\" width=\"24.6521\">" }; function ru ( index ) { if ( !ruElem.length ) { for ( var i = 1; i < 6; i++ ) { ruElem.push( document.getElementById(["Emr","u",""].join(i)) ); } } for ( var i = 0, len = ruElem.length; i < len; i++ ) { ruElem.innerHTML = htmlObj[ (i % 2 ? 's' : 'c') + (i == index : "h" : '') ]; } }; Использовать так <div onclick="ru(2)">... |
Где-то уже писал.. Гибкий и короткий вариант на jQuery. Кликать по пунктам.
<!DOCTYPE HTML> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> <script> $(function() { $('#images img').hide(); $('#menu li').click(function() { $('#images img').hide().eq($(this).index()).show(); }) }); </script> </head> <body> <ul id="menu" style="cursor: pointer"> <li>Smile</li> <li>Haha</li> <li>Nono</li> </ul> <div id="images"> <img alt="" src="http://javascript.ru/forum/images/smilies/smile.gif"/> <img alt="" src="http://javascript.ru/forum/images/smilies/haha.gif"/> <img alt="" src="http://javascript.ru/forum/images/smilies/nono.gif"/> </div> </body> </html> |
Огромное Вам спасибо.) Буду вникать.
|
Часовой пояс GMT +3, время: 04:39. |