Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Обращение к картинке на котрую наведена мышь (https://javascript.ru/forum/misc/9017-obrashhenie-k-kartinke-na-kotruyu-navedena-mysh.html)

Lynch 25.04.2010 10:55

Обращение к картинке на котрую наведена мышь
 
Не могу понять почему не работает такой код:
<script>
suv=600; 
sum=200; 
function uv(Pos,img) 
 { 
  if (suv > Pos) 
   { 
     step=20; 
     Pos=Pos+step; 
   } 
  else 
   { 
    return; 
   } 
  img.width=Pos; 
  setTimeout('uv('+Pos+','+img+')',1); 
 } 
 
 
function um(Pos,img) 
 { 
  if (sum < Pos) 
   { 
     step=20; 
     Pos=Pos-step; 
   } 
  else 
   { 
    return; 
   } 
  img.width=Pos; 
  setTimeout('um('+Pos+','+img+')',1); 
 } 
</script>

<center><IMG id="img1" src= "mount.gif" width="200" onmouseover="uv(200,this)" onmouseout="um(600,this)"></center>

Вроде как по задумке мы наводим мышь на картинку, передаём в js начальный width и id картинки, затем она должна увеличится. Соответственно когда мышь убираем - уменьшиться...где напортачил я не пойму. Пните пожалста пару раз :thanks:
PS в js я дуб дубом

Octane 25.04.2010 11:08

Цитата:

Сообщение от Lynch
setTimeout('um('+Pos+','+img+')',1);

В переменной img у вас ссылка на DOM-элемент и вы её пытаетесь со строкой сложить, в итоге выходит что-то типа:
"um(600,[object HTMLImageElement])"
Естественно eval такой строки, переданной в setTimeout, ни к чему не приведет.
setTimeout(function () {
    um(Pos, img);
}, 1);

exec 25.04.2010 11:09

function uv (w, e) {
setInterval(function () {
if (e.width < w) e.width++;
}, 10)
}

Lynch 25.04.2010 13:13

Всем +1, но наверно я тупой совсем...исправил как сказал Octane - ничего не изменилось, сделал как сказал exec - ничего не изменилось...
Придётся изучать js за мего короткие сроки...2 дня, ну я не прошу...но если кто-то захочет помочь - покажите исправленный код js, буду очень признателен.
PS мне аж стыдно за своё нытьё )


Добавлено:
Проблему решил, оказалось что в скрипте не надо ставить <script></script> ...


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