Сократить код.
Доброго времени суток.
Имеется очень страшный, импровизированный код:
<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, время: 21:21. |