Проблема со скриптом в Firefox
Скрипт, заставляющий двигаться картинку за курсором мыши.
в Опере и в ИЕ работает нормально, в файрфоксе картинка не двигается. Почему? Код: xm=0 ym=0 OlsW=lighter.width/2 OlsH=lighter.height/2 function Moveimg(event){ x=xm y=ym lighter.style.left=x lighter.style.top=y setTimeout("Moveimg()",100) } function doMouse(event){ if(window.event) xm=window.event.x-OlsW//начальная точка подвижного окна ym=window.event.y-OlsH if(e) xm=window.e.clientX-OlsW ym=window.e.clientY-OlsH } document.onmousemove=doMouse Moveimg(event) двигаемый рисунок - PNG файл c прозрачностью. |
lighter.style.left=x + 'px'; lighter.style.top=y + 'px'; |
Не работает.
Откуда px и py взяли? |
Кто еще какие варианты может предложить?
|
Цитата:
|
Ну, px - где эта переменная задается у меня в скрипте? что за параметр?
|
Это строка.
|
px - это единица измерения, нужна она для того, чтобы программа понимала, что вы задаете смещение в px (пикселах)
.left = x + 'px'; // означает 10px ... 113px и т.д., а не просто 10 ... 113 и т.д. |
Предложенная конструкция все равно не спасает скрипт в файрфокс.
|
Да у вас там, честно говоря, трэш, а не код, он и в остальных-то браузерах работать не должен.
|
xm=0 ym=0 OlsW=lighter.width/2 OlsH=lighter.height/2 function Moveimg(event){ /* зачем тут параметр? */ x=xm y=ym lighter.style.left=x /* значения в пикселах! */ lighter.style.top=y /* значения в пикселах! */ setTimeout("Moveimg()",100) /* запуск без параметра через .1 секунды */ } function doMouse(event){ if(window.event) /* если ... */ xm=window.event.x-OlsW /* ... то */ ym=window.event.y-OlsH /* выполнится в любом случае, вызвав ошибку в менее добрых, чем Опера браузерах */ if(e) /* почти наверняка undefined! */ xm=window.e.clientX-OlsW /* никогда не выполнится */ ym=window.e.clientY-OlsH /* В этом месте поток аварийно рушится, но это неважно — все важное мы уже сделали */ } document.onmousemove=doMouse Moveimg(event) /* кто такой этот эвент? */ Не забывайте про фигурные скобочки! И почитайте самоучитель на этом сайте, он поможет Вам разобраться в яваскрипте, а не просто заниматься копипастом. |
Но работает же. :)
|
Цитата:
|
я его не писал, нашел и адаптировал, то есть адаптирую, под свой сайт.
:) |
Цитата:
|
Все еще не устранил глюк в FF.(((
|
Довел скрипт до такого вида, не работает все равно.
xm = 0; ym = 0; OlsW = lighter.width/2; OlsH = lighter.height/2; function Moveimg(){ x = xm; y = ym; lighter.style.left = x; lighter.style.top = y; setTimeout("Moveimg()",100) } function doMouse(){ if(window.event) { xm = window.event.x-OlsW; ym = window.event.y-OlsH; } if(window.event) { xm = window.event.clientX-OlsW; ym = window.event.clientY-OlsH; } } document.onmousemove = doMouse; Moveimg(); |
ArmagedDance,
а вы скрипты методом научного тыка пишете? А то ведь там логика напрочь местами отсутствует. |
Цитата:
Если не лень, поясните, пожалуйста, где отсутствует логика. |
Цитата:
|
Часовой пояс GMT +3, время: 02:36. |