Всплывающая подсказка
Как я вижу (пока в голове у себя, а не на сайте к сожалению) работу этого скрипта:
При наведении мыши на картинку, табличка, которая изначально невидима, становится видимой, позиционируется рядом с курсором мыши и в ячейку этой таблицы вписывается текст с задержкой для каждой буквы. По событию onmouseout() текст в ячейке очищается. НО!!! При новом наведении мыши, текст в ячейку не записывается, и табличка оказывается пустой. Помогите пожалуйста отладить скрипт...
<script>
wrstr = "Описание канала"
astr = wrstr.split("")
typestr = ""
i=0;
function wrtext() {
if(i< astr.length) {
typestr+=astr[i];
document.getElementById("wr_"+num_id).innerHTML = typestr;
i++;
}
else clearInterval(xinterval)
}
/* xinterval = setInterval("wrtext()", 50) */
function on_panel() {
on_id = event.srcElement
num_id = on_id.id;
lem=document.getElementById("u_"+num_id);
if(lem.style.visibility=="hidden") {
coord=window.event;
lem.style.top=coord.clientY+20;
lem.style.left=coord.clientX+20;
lem.style.visibility="visible";
xinterval = setInterval("wrtext()", 50)
}
else {
lem.style.visibility="hidden";
document.getElementById("wr_"+num_id).innerHTML = "";
}
}
</script>
<body>
<img id="01" src="bodyimg/hotbird1.gif" width="95" height="72" onMouseOver="on_panel()" onMouseOut="on_panel()">
<div id="u_01" style="background-color:#FF9900; border:#0000CC; border-style:solid; border-width:1px; visibility:hidden; position:absolute; width:200;top:50; left:50; height:200; opacity:0.5; filter:alpha(opacity:50);">
<table width="200">
<tr>
<td id="wr_01"></td>
</tr>
</table>
</div>
</body>
Спасибо |
SunYang,
Перед установкой нового интервала xinterval = setInterval("wrtext()", 50), у вас не обнуляется счетчик символов. Попробуйте сделать так:
...
i = 0;
xinterval = setInterval("wrtext()", 50);
...
|
Попробовал. Частично работает. Начинает писать строку заново. Но уже после уже написанной при первом наведении мыши. Одну и туже строку пишет еще раз после каждого наведения.
|
чет на код по событию onmouseout()
... document.getElementById("wr_"+num_id).innerHTML = ""; ... не реагирует. |
SunYang,
Попробуйте так:
function on_panel() {
if(lem.style.visibility=="hidden") {
on_id = event.srcElement
num_id = on_id.id;
lem=document.getElementById("u_"+num_id);
coord=window.event;
lem.style.top=coord.clientY+20;
lem.style.left=coord.clientX+20;
lem.style.visibility="visible";
xinterval = setInterval("wrtext()", 50)
} else {
lem.style.visibility="hidden";
lem.innerHTML = "";
i = 0;
}
}
|
Все!!! Я сам додумал....
Вот так надо было написать:
function on_panel() {
typestr="" // Все дело в том, что строка эта после отработки функции бла не пуста.
on_id = event.srcElement
num_id = on_id.id;
lem=document.getElementById("u_"+num_id);
if(lem.style.visibility=="hidden") {
coord=window.event;
lem.style.top=coord.clientY+20;
lem.style.left=coord.clientX+20;
lem.style.visibility="visible";
xinterval = setInterval("wrtext()", 50)
}
else {
lem.style.visibility="hidden";
i=0
}
}
|
Спасибо за поддержку!!
|
А кто знает, можно зашифровать этот скрипт??
|
можно его откомпресить:
http://javascript.ru/optimize/javascript-compression В данном случае подойдет компрессия через eval(str); Не шифровка, но читать уже сложнее. =))) |
Дык этож все дешифрации подлежит....
|
SunYang,
Вы можете обфусцировать код, тогда он будет сложночитаем и будет практически невозможно его понять. Но дешифрации, в данном случае, подлежит всё. |
зачем такое г шифровать,
я понимаю если там большой скрипт на 550 кб, работает безотказно, делает практически невозможные вещи, это я понимаю его можно шифрануть для продажи, а это г зачем. |
Цитата:
Зачем высказывать свое мнение в такой категоричной форме? Человек старался, писал, а вы... |
Snipe, scuter всего лишь хочет отговорить ТС от бесполезных действий, тем более ради бесполезного скрипта.
|
Цитата:
маленький код, который делает не значительные вещи. |
| Часовой пояс GMT +3, время: 21:05. |