Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Проблема со скриптом в Firefox (https://javascript.ru/forum/events/6581-problema-so-skriptom-v-firefox.html)

subzey 07.12.2009 18:51

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) /* кто такой этот эвент? */

Не забывайте про фигурные скобочки! И почитайте самоучитель на этом сайте, он поможет Вам разобраться в яваскрипте, а не просто заниматься копипастом.

ArmagedDance 08.12.2009 07:48

Но работает же. :)

Gvozd 08.12.2009 08:18

Цитата:

Сообщение от ArmagedDance
Но работает же.

вы считаете это достойным оправданием, чтобы писать отвратительный код?

ArmagedDance 08.12.2009 08:49

я его не писал, нашел и адаптировал, то есть адаптирую, под свой сайт.
:)

Kolyaj 08.12.2009 09:17

Цитата:

Сообщение от ArmagedDance
Но работает же.

Но не везде же.

ArmagedDance 08.12.2009 13:12

Все еще не устранил глюк в FF.(((

ArmagedDance 08.12.2009 14:13

Довел скрипт до такого вида, не работает все равно.

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();

Kolyaj 08.12.2009 14:26

ArmagedDance,
а вы скрипты методом научного тыка пишете? А то ведь там логика напрочь местами отсутствует.

ArmagedDance 08.12.2009 15:18

Цитата:

Сообщение от Kolyaj (Сообщение 37465)
ArmagedDance,
а вы скрипты методом научного тыка пишете? А то ведь там логика напрочь местами отсутствует.

Я только начинающий в этом деле :)
Если не лень, поясните, пожалуйста, где отсутствует логика.

Kolyaj 08.12.2009 15:32

Цитата:

Сообщение от ArmagedDance
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;
}

Вот эти два условия, например.


Часовой пояс GMT +3, время: 02:57.