Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   onmouseout with 2 image =) (https://javascript.ru/forum/events/17503-onmouseout-2-image-%3D.html)

Slawaq 22.05.2011 01:01

onmouseout with 2 image =)
 
<img id="img0" src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" width="100" height="100" /><br/>
<img id="img1" src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" width="100" height="100" />
<script>
to=150;
mouseover=new Array(false,false);
for(i=0;i<2;i++){
    e=document.getElementById('img'+i);
    e.onmouseover=function(){
    e=this;
    id=e.id.substring(3);
    per=to/100;
    a=100;
    b=100;
    mouseover[id]=true;
    setTimeout(function(){
        if((e.width<(a*per))&&(mouseover[id])){
            e.width++;
            e.height++;
            setTimeout(arguments.callee,50);
        }    
        
    },50)
    }
    e.onmouseout=function(){
    e=this;
    id=e.id.substring(3);
    per=to/100;
    a=100;
    b=100;
    mouseover[id]=false;
    alert("real width: "+e.width+" > "+a+"; MouseOnImage: "+mouseover[id])
    setTimeout(function(){
        if((e.width>a)&&(!mouseover[id])){
            e.width--;
            e.height--;
            setTimeout(arguments.callee,50);
        }    
        
    },50)
    }
}

</script>

если навести курсор на картинку то она увеличивается, когда увести то уменьшается, но если увести на другую картинку, то уменьшение не произойдет, вопрос почему? ведь условия рекурсии будут соблюдаться, и будут одинаковы что уводишь на белый фон, что на другую картинку

ArmagedDance 22.05.2011 01:46

У меня в опера 11 уменьшение происходит в обоих случаях.

Sweet 22.05.2011 01:53

Чел, ты совсем не двигаешься в javascript! Пару дней назад был год, как ты зарегился на форуме, то есть ты уже не первый день пишешь на javascript, и делаешь тупейшие ошибки. Рекомендую задуматься...
Собственно, почему ты забил на переменные??? Очевидно, потому что ты не понимаешь, зачем они нужны, чем отличаются от свойств глобального объекта и пр. Как итог: у тебя все функции используют одно и тоже свойство window.e.

Slawaq 22.05.2011 11:52

спасибо за просвещение =))
от что вышло, теперь работает:
<img id="img0" src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" width="100" height="100" /><br/><hr/>
<img id="img1" src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" width="100" height="100" />
<script>
var to=150;
var e=Array(document.getElementById('img'+0),document.getElementById('img'+1));
var mouseover=new Array(false,false);
for(i=0;i<2;i++){
    e[i].onmouseover=function(){
    var n=this.id.substring(3);
    per=to/100;
    a=100;
    b=100;
    mouseover[n]=true;
    setTimeout(function(){
        if((e[n].width<(a*per))&&(mouseover[n])){
            e[n].width+=4;
            e[n].height+=4;
            setTimeout(arguments.callee,50);
        }    
        
    },50)
    }
    e[i].onmouseout=function(){
    var n=this.id.substring(3);
    mouseover[n]=false;
    per=to/100;
    a=100;
    b=100;
    setTimeout(function(){
        if((e[n].width>a)&&(!mouseover[n])){
            e[n].width-=4;
            e[n].height-=4;
            setTimeout(arguments.callee,50);
        }    
        
    },50)
    }
}

</script>


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