2 onmouseover

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем liven, 6 дек 2004.

Статус темы:
Закрыта.
  1. liven

    liven Гость

    Есть небольшая проблемка... Как при наведении на текстовую ссылку заставить изменяться 2 картинки? Есть следующая функция (писал ее не я, потому и вопросы):

    Код (Text):
    function MM_preloadImages() {
    var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
     var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
     if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    }

    function MM_swapImgRestore() {
    var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
    }

    function MM_findObj(n, d) {
    var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
     d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
    }

    function MM_swapImage() {
    var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
     if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
    }
    и собственно onmouseover в теге <a>:


    Код (Text):
    <td><img src="images/bullet_2.gif" name="new" id="new" width="7" height="33" border=0></td>

    <li><a href="#" onMouseOver="MM_swapImage('back','','images/bullet_dn.gif',1); MM_swapImage('new','','images/bullet_dn_2.gif',1)" onMouseOut="MM_swapImgRestore()">автоплощадка</a></li>

    <td><img src="images/bullet.gif" name="back" id="back" width="7" height="33" border=0></td>

    в таком варианте, при наведении на ссылку все работает, но onmouseout восстанавливает только картинку 'new', а 'back' остается 'images/bullet_dn.gif' (активная картинка)... В чем может быть дело? или может кто другую функцию подскажет?
     
  2. ????

    ???? Гость

    liven
    Вот тебе небольшой тутор на эту тему (самому разбираться влом) - тынц

    Вот тебе ещё код сгенерированный FronPage2003 для одной кнопочки с картинками:

    Код (Text):
    <html>

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Новая страница 1</title>
    <script language="JavaScript">
    <!--
    function FP_swapImg() {//v1.0
    var doc=document,args=arguments,elm,n; doc.$imgSwaps=new Array(); for(n=2; n<args.length;
    n+=2) { elm=FP_getObjectByID(args[n]); if(elm) { doc.$imgSwaps[doc.$imgSwaps.length]=elm;
    elm.$src=elm.src; elm.src=args[n+1]; } }
    }

    function FP_preloadImgs() {//v1.0
    var d=document,a=arguments; if(!d.FP_imgs) d.FP_imgs=new Array();
    for(var i=0; i<a.length; i++) { d.FP_imgs[i]=new Image; d.FP_imgs[i].src=a[i]; }
    }

    function FP_getObjectByID(id,o) {//v1.0
    var c,el,els,f,m,n; if(!o)o=document; if(o.getElementById) el=o.getElementById(id);
    else if(o.layers) c=o.layers; else if(o.all) el=o.all[id]; if(el) return el;
    if(o.id==id || o.name==id) return o; if(o.childNodes) c=o.childNodes; if(c)
    for(n=0; n<c.length; n++) { el=FP_getObjectByID(id,c[n]); if(el) return el; }
    f=o.forms; if(f) for(n=0; n<f.length; n++) { els=f[n].elements;
    for(m=0; m<els.length; m++){ el=FP_getObjectByID(id,els[n]); if(el) return el; } }
    return null;
    }
    // -->
    </script>
    </head>

    <body onload="FP_preloadImgs(/*url*/'button3.jpg',/*url*/'button4.jpg')">

    <p>
    <img border="0" id="img1" src="button2.jpg" height="20" width="100" alt="Текст кнопки" onmouseover="FP_swapImg(1,0,/*id*/'img1',/*url*/'button3.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img1',/*url*/'button2.jpg')" onmousedown="FP_swapImg(1,0,/*id*/'img1',/*url*/'button4.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img1',/*url*/'button3.jpg')" fp-style="fp-btn: Glow Capsule 6" fp-title="Текст кнопки"></p>

    </body>

    </html>
     
  3. liven

    liven Гость

    Да собственно как менять картинку при наведении я знаю, вопрос в другом, как заставить работать 2 onmouseover в одном теге <a> ???? У меня при наведении на ссылку должны меняться 2 картинки по бокам от ссылки. Меняются они обе, но вот когда убираешь курсор от ссылки, в первоначальное положение возвращается только одна... :huh:

    Сразу я писал 2 onmouseover и у меня вообще 1 картинка не менялась, пока не додумался сделать 1 onmouseover разделив точкой с запятой вызовы функций... теперь вот с onmouseout надо что-то делать....
     
  4. liven

    liven Гость

    Да собственно любые события OnMouse[...] также неккоректно работают, когда их по несколько штук в одном теге, так что вопрос о том, какой синтаксис написания нескольких одинаковых событий в одном теге?????
     
  5. ????

    ???? Гость

    liven
    А сложно из одной функции вызывать другую? Одно событие, в котором вызываются две функции?
     
Загрузка...
Похожие Темы - onmouseover
  1. YGol
    Ответов:
    9
    Просмотров:
    1.345
  2. Radion2
    Ответов:
    2
    Просмотров:
    3.178
Статус темы:
Закрыта.

Поделиться этой страницей