www.webdeveloper.com
Results 1 to 4 of 4

Thread: [RESOLVED] defining swap image width height in script

  1. #1
    Join Date
    Dec 2006
    Location
    San Diego, CA
    Posts
    13

    resolved [RESOLVED] defining swap image width height in script

    I am using the following javascript for a swap image restore on a navigation button:


    Code:
    <!--
    function MM_preloadImages() { //v3.0
      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() { //v3.0
      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) { //v4.01
      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() { //v3.0
      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];}
    }
    
    ------body---------
    
    <img src="images/left_arrow.png" name="back" width="21" height="82" id="back" border="0" 
    onmouseover="MM_swapImage('back','','images/left_arrow_over.png',1)" onmouseout="MM_swapImgRestore()" />
    Unfortunately, due to a quirk in IE 6 the transparencies in my PNG buttons show as gray. I found a nice correction using an alphaimageloader script from here, but it requires defining a width and height attribute for both the original image AND the image that will be swapped.

    I'm not really a javascript expert and I'm not readily seeing where to define these attributes in the MM_swapImage() function above for the swap target image. Any advice would be greatly appreciated. thx.
    Last edited by jepler; 08-08-2007 at 08:39 PM.
    James Epler
    San Diego, CA
    http://mytechmusings.blogspot.com

  2. #2
    Join Date
    May 2005
    Location
    Dirty Jersey
    Posts
    1,400
    it would probably (guessing) need to be defined in between the {} of the "if ((x=MM_findObj(a[i]))!=null)" condition. that looks like where it sets the SRC for stuff.

    1. If you reply to my post, and your reply would then appear directly beneath my post, DON'T QUOTE MY ENTIRE POST!!! IT'S REDUNTANT!!! IT'S ASININE!!!! IT'S REDUNDANTLY ASININE!!!!! DON'T DO IT!!!!
    2. jQuery extends the functionality of JavaScript. If you don't know JavaScript, give up on that jQuery script and learn JavaScript. You'll save yourself a lot of frustration, I promise.
    3. Use the [code][/code] tags. Otherwise, you may be left wondering why no one responded to your eyesore of a thread.


  3. #3
    Join Date
    Dec 2006
    Location
    San Diego, CA
    Posts
    13
    So...

    Is this along the lines of could conceivably work? I'm totally guessing here myself...

    if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2]; x.height=a; x.width=b;}
    }

    ------body---------

    <img src="images/left_arrow.png" name="back" width="21" height="82" id="back" border="0"
    onmouseover="MM_swapImage('back','','images/left_arrow_over.png',1,'auto','auto')" onmouseout="MM_swapImgRestore()" />
    James Epler
    San Diego, CA
    http://mytechmusings.blogspot.com

  4. #4
    Join Date
    Dec 2006
    Location
    San Diego, CA
    Posts
    13

    set target swap image's height and width attributes to 'auto'

    Actually, it turned out to be easier than I thought! The code I posted before didn't work, but setting the height and width of the swapped image to 'auto' did the trick and the alphaimageloader script now works!

    function MM_swapImage() { //v3.0
    var i,j=0,x,a=MM_swapImage.arguments,h,w; 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]; height='auto'; width='auto';}
    }
    James Epler
    San Diego, CA
    http://mytechmusings.blogspot.com

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles