Работет везде на чем проверял (IE6, IE6+Maxthon, FF2.0.0.9, Opera 7.54, Opera 9.1 и наконец сам чистый IE7) все ровно и без проблем, но вот Maxthon+IE7 глючит.
Есть абсолютно позиционированный IMG с id="tvadv", с помощью двух функций имитируется его zoom in ( zin() ) и zoom out ( zout() ) взаимно вызывающихся setTimeout'ами. Функции меняют left, top, width и height и всего то. Еще эти функции вызываются событиями: OnMouseOver = zoom in; OnMouseOut = zoom out.
В функциях zin() и zout() еще скорость меняется (т.е. задержка setTimeout'а уменьшается).
Проблема в том что в Maxthon+IE7 этот "tvadv" исчезает из DOM'а, но не сразу, а или по истечению какого-то времени (как я понял, может и ошибаюсь), или на zoom out'е, просто молча исчезает и все. Можно даже в адресной строке написать javascript:alert(document.getElementById('tvadv').tagName); пока картинка на страничке видна исправно alert'ает IMG, когда исчезает вообще ничего не говорит.
Собственно вот сам код:
| Код | <img id="tvadv" src="http://www.artem-catv.ru/adv/orders/478_th.png" width="250" border="0" style="position:absolute;left:630;top:500;width:250px;height:200px;" OnMouseOver="zin(60,'over');" OnMouseOut="zout(60,'out');">
|
| Код | <script language="javascript"> var int_speed = 60; // исходная скорость var zin_t; // таймер zoom in'а var zout_t; // таймер zoom out'а var ini_w = 250; // исходная ширина var ini_h = 200; // исходная высота var inc_w = 110; // макс прирост ширины var inc_h = 88; // макс прирост высоты var w_c = 10; // прирост ширины за шаг var h_c = 8; // прирост высоты за шаг z_im = document.getElementById("tvadv").style; // ссылка на style картинки function zin(speed,e_move) { clearTimeout(zout_t); now_w = parseInt(z_im.width); now_h = parseInt(z_im.height); now_x = parseInt(z_im.left); now_y = parseInt(z_im.top); if(now_w<ini_w+inc_w) { z_im.width = now_w+w_c; z_im.height = now_h+h_c; z_im.left = now_x-w_c/2; z_im.top = now_y-h_c/2; if(speed-5>0) {speed=parseInt(speed-5);} if(e_move == "over") { zin_t = setTimeout("zin("+speed+",'over')",speed); }else{ zin_t = setTimeout("zin("+speed+")",speed); } } else if(e_move != "over") { zout_t = setTimeout("zout("+int_speed+")",1500); } }
function zout(speed,e_move) { clearTimeout(zin_t); now_w = parseInt(z_im.width); now_h = parseInt(z_im.height); now_x = parseInt(z_im.left); now_y = parseInt(z_im.top); if(now_w>ini_w) { z_im.width = now_w-w_c; z_im.height = now_h-h_c; z_im.left = now_x+w_c/2; z_im.top = now_y+h_c/2; if(speed-5>0) {speed=parseInt(speed-5);} if(e_move == "out") { zout_t = setTimeout("zout("+speed+",'out')",speed); }else{ zout_t = setTimeout("zout("+speed+")",speed); } } else if(e_move != "out") { zin_t = setTimeout("zin("+int_speed+")",10000); } } setTimeout("zin("+int_speed+")",2000); </script>
|
Вот ссылка со страничкой где все это есть (справа под вэб-камерой) http://neon.artem-catv.ru/img.html
Кто нить подскажите, пожалуйста, что поменять в скрипте чтоб оно заработало и в Maxthon+IE7! Может кто нарывался на подобное, я уже устал, в нете тишина ну или я плохо искал, надеюсь на то, что тут есть реальные Гуру. |