Всплывающая подсказка
Как я вижу (пока в голове у себя, а не на сайте к сожалению) работу этого скрипта:
При наведении мыши на картинку, табличка, которая изначально невидима, становится видимой, позиционируется рядом с курсором мыши и в ячейку этой таблицы вписывается текст с задержкой для каждой буквы. По событию 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); Не шифровка, но читать уже сложнее. =))) |
Дык этож все дешифрации подлежит....
|
Часовой пояс GMT +3, время: 23:00. |