Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   img, mousemove + mouseover (https://javascript.ru/forum/dom-window/3302-img-mousemove-mouseover.html)

xXDeMoNXx 05.04.2009 14:32

img, mousemove + mouseover
 
В js новичек, но мне нужно сделать что бы при наведении на определенную часть картинки записывалась цифра и подставлялась как часть атрибута src, но если убрать мышь должна вернутся исходная картинка.

Все хорошо но вот если первый раз навести и убрать - норм, а второй и дальше - останется картинка которая была при наведении.

Вот код.

var img = document.getElementById("img");
	 // Записываем значение src, которое нужно будет вернуть
	 var isrc = img.src; 
	 // Левый верхний угол
	 var lx = absPosition(img)["x"];
	 var ly = absPosition(img)["y"];
	 // Правый нижний
	 var rx = lx + img.width;
	 var ry = ly + img.height;
	 img.onmousemove = function() {
		 var mx = defPosition()['x'];
		 //В зависимости от положения мыши по оси X меняем изображение
		 if(mx >= lx && mx <= lx + 15) n = 1;
		 if(mx > lx + 15 && mx <= lx + 29) n = 2;
		 if(mx > lx + 29 && mx <= lx + 43) n = 3;
		 if(mx > lx + 43 && mx <= lx + 57) n = 4;
		 if(mx > lx + 57 && mx <= rx) n = 5;
		 img.src = host + "img/" + n + "hover.png";
		
	 }
	 // Должна вернутся исходная картинка
	 img.onmouseout = function () {img.src = isrc;}

milk3dfx 11.04.2009 03:23

может без var?
img = document.getElementById("img");
img.src="что-то";
isrc = img.src;

Проще можно сделать через карту изображения или элемент AREA
http://www.htmlbook.ru/html/area.html
хотя я с ними ни когда не работал, посмотри

xXDeMoNXx 11.04.2009 14:07

var убрал, непомогло... кстати зачем писать вар каждый раз - незнаю, но пачимуто все так делают


а арею ща попробую, помеому это самое оно :))

xXDeMoNXx 11.04.2009 15:00

все, area помогло... проблема решена

milk3dfx 13.04.2009 07:35

Не могу найти где в статьях на javascript.ru говорилось про var. Но идея такова что если без var то переменная сразу становится глобальной то есть видна везде, а если с ней то она видна только в той части кода в которой объявлена. Поищи на сайте в статьях


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