Web Analytics Made Easy -
StatCounter Fade Slide Show - CodingForum

Announcement

Collapse
No announcement yet.

Fade Slide Show

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fade Slide Show

    I am creating a slide show in Javascript. So far it is running smoothly, however instead of the slides just switching to the next slide I want them to fade into the next slide. Is this possible in Javascript?

    Here is the code:
    Code:
     
    <script type="text/javascript">
    <!--
    var image1=new Image()
    image1.src="images/image1.gif"
    var image2=new Image()
    image2.src="images/image2.gif"
    var image3=new Image()
    image3.src="images/image3.gif"
    //-->
    </script>
    
    <img src="images/image1.gif" name="slide" width=961 height=299>
    <script type="text/javascript">
    var count = 0;
    var numImages = 3; //number of images
    //variable that will increment thorugh images
    var step=1
    function slideit(){
    count++;
    //if browser does not support the image object, exit.
    if (!document.images) {return}
    document.images.slide.src=eval("image"+step+".src");
    if (step<3) {step++}
    else {step=1}
    //call function "slideit()" every 2.5 seconds
    if (count < (3 * numImages)) {   // or however many times to repeat
    var tim = setTimeout("slideit()",5000);
    }
    else { 
    window.clearTimeout(tim);
    }
    }
    
    slideit();
    
    </script>

  • #2
    yep it's pretty easy with FF and opera. I'm sure it's just a simple line or two to get IE working too.
    http://h1.ripway.com/stirfry/index.html
    there's a simple script on this page. View the page source Save it and use it. The variable used is global and I switch it back to 0 between transitions. it should simple to follow since I managed to create it. LOL

    I actually borrowed from the "fake CSS lightbox script" Google turns up.

    Comment


    • #3
      Code:
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      
      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
      
      <head>
        <title></title>
      <script type="text/javascript">
      /*<![CDATA[*/
      // Basic Element Animator (21-February-2009)
      // by Vic Phillips http://www.vicsjavascripts.org.uk
      
      // To progressively change the Left, Top, Width, Height or Opacity of an element over a specified period of time.
      // With the ability to scale the effect time on secified minimum/maximum values<br />
      // and with three types of progression 'sin' and 'cos' and liner.
      
      // **** Application Notes
      
      // **** The HTML Code
      //
      // when moving an element the inline or class rule style position of the element should be assigned as
      // 'position:relative;' or 'position:absolute;'.
      //
      // The element would normally be assigned a unique ID name.
      //
      
      // **** Executing the Effect(Script)
      //
      // The effect is executed by an event call to function 'zxcBAnimator('width#',document.getElementById('tst'),10,800,5000,[10,800],'sin');'
      // where:
      // parameter 0 = the mode(see Note 2).                                                                     (string)
      // parameter 1 = the unique ID name or element object.                                                     (string or element object)
      // parameter 2 = the start position of the effect.                                                         (digits, for opacity minimum 0, maximum 100)
      // parameter 3 = the finish position of the effect.                                                        (digits, for opacity minimum 0, maximum 100)
      // parameter 4 = (optional) period of time between the start and finish of the effect in milliseconds.     (digits or defaults to 2000 milliSeconds)
      // parameter 5 = (optional) to scale the effect time on a secified minimum/maximum.                        (array, see Note 5)
      //                 field 0 the minimum. (digits)
      //                 field 1 the maximum. (digits)
      // parameter 6 = (optional) the type of progression, 'sin', 'cos' or 'liner'.                              (string, default = 'liner')
      //                'sin' progression starts fast and ends slow.
      //                'cos' progression starts slow and ends fast.
      //
      //  Note 1:  The default units(excepting opacity) are 'px'.
      //  Note 2:  Examples modes: 'left', 'top', 'width', 'height', 'opacity.
      //           For hyphenated modes, the first character after the hyphen must be upper case, all others lower case.
      //  Note 3:  To 'toggle' the effect include '#' in parameter 0.
      //           The first call will set the toggle parameters.
      //           Subsequent calls with '#' in parameter 0 and the same start and finish parameters will 'toggle' the effect.
      //  Note 4:  The function may be re-executed with a different set of parameters (start/finish time or period)
      //           whenever required, say from an onclick/mouseover/out event.
      //           The period parameter will be retained unless re-specified.
      //  Note 5: parameter 5 is of particular use when re-calling the effect
      //          in mid travel to retain an constant rate of progression.
      //
      // **** Advanced Applications
      //
      //  It may be required to access the current value of the effect.
      //  The element effect is accessible from the element property
      //  element effect = elementobject[mode.replace(/\W/g,'')+'oop'];
      //  where mode is parameter 0 of the initial call.
      //  An array storing the current, start and finish values of the element effect may be accessed
      //  from the element effect.data as fields 0, 1 and 2 respectively
      //
      
      // **** General
      //
      // All variable, function etc. names are prefixed with 'zxc' to minimise conflicts with other JavaScripts.
      // These characters may be changed to characters of choice using global find and replace.
      //
      // The Functional Code(about 2.06K) is best as an External JavaScript.
      //
      // Tested with IE7 and Mozilla FireFox on a PC.
      //
      
      
      
      // **** Functional Code - NO NEED to Change
      
      
      function zxcBAnimator(mde,obj,srt,fin,ms,scale,curve){
       if (typeof(obj)=='string'){ obj=document.getElementById(obj); }
       if (!obj||(!srt&&!fin)||(srt==fin)) return;
       var oop=obj[mde.replace(/\W/g,'')+'oop'];
       if (oop){
        clearTimeout(oop.to);
        if (oop.srtfin[0]==srt&&oop.srtfin[1]==fin&&mde.match('#')) oop.update([oop.data[0],(oop.srtfin[0]==oop.data[2])?fin:srt],ms,scale,curve);
        else oop.update([srt,fin],ms,scale,curve);
       }
       else obj[mde.replace(/\W/g,'')+'oop']=new zxcBAnimatorOOP(mde,obj,srt,fin,ms,scale,curve);
      }
      
      function zxcBAnimatorOOP(mde,obj,srt,fin,ms,scale,curve){
       this.srtfin=[srt,fin];
       this.to=null;
       this.obj=obj;
       this.mde=mde.replace(/\W/g,'');
       this.update([srt,fin],ms,scale,curve);
      }
      
      zxcBAnimatorOOP.prototype.update=function(srtfin,ms,scale,curve){
       this.time=ms||this.time||2000;
       this.data=[srtfin[0],srtfin[0],srtfin[1]];
       this.ms=this.time*(!scale?1:Math.abs((srtfin[1]-srtfin[0])/(scale[1]-scale[0])));
       this.curve=(typeof(curve)=='string')?curve.charAt(0).toLowerCase():(this.curve)?this.curve:'x';
       this.inc=Math.PI/(2*this.ms);
       this.srttime=new Date().getTime();
       this.cng();
      }
      
      zxcBAnimatorOOP.prototype.cng=function(){
       var ms=new Date().getTime()-this.srttime;
       this.data[0]=(this.curve=='s')?Math.floor((this.data[2]-this.data[1])*Math.sin(this.inc*ms)+this.data[1]):(this.curve=='c')?(this.data[2])-Math.floor((this.data[2]-this.data[1])*Math.cos(this.inc*ms)):(this.data[2]-this.data[1])/this.ms*ms+this.data[1];
       if (this.mde!='left'&&this.mde!='top'&&this.data[0]<0) this.data[0]=0;
       if (this.mde!='opacity') this.obj.style[this.mde]=this.data[0]+'px';
       else  zxcOpacity(this.obj,this.data[0]);
       if (ms<this.ms) this.to=setTimeout(function(oop){return function(){oop.cng();}}(this),10);
       else {
        this.data[0]=this.data[2];
        if (this.mde!='opacity') this.obj.style[this.mde]=this.data[0]+'px';
        else zxcOpacity(this.obj,this.data[0]);
       }
      }
      
      function zxcOpacity(obj,opc){
       if (opc<0||opc>100) return;
       obj.style.filter='alpha(opacity='+opc+')';
       obj.style.opacity=obj.style.MozOpacity=obj.style.KhtmlOpacity=opc/100-.001;
      }
      
      /*]]>*/
      </script>
      <script type="text/javascript">
      <!--
      var image1=new Image()
      image1.src="http://www.vicsjavascripts.org.uk/StdImages/One.gif"
      var image2=new Image()
      image2.src="http://www.vicsjavascripts.org.uk/StdImages/Two.gif"
      var image3=new Image()
      image3.src="http://www.vicsjavascripts.org.uk/StdImages/Three.gif"
      //-->
      </script>
      
      <img src="images/image1.gif" name="slide" width=961 height=299>
      <script type="text/javascript">
      var count = 0;
      var numImages = 3; //number of images
      //variable that will increment thorugh images
      var step=1
      var spd=2000;
      
      function slideit(){
      count++;
      //if browser does not support the image object, exit.
       if (!document.images) {return}
       zxcBAnimator('opacity',document.images.slide,0,100,spd/2);
       document.images.slide.src=window["image"+step].src;
       if (step<3) {step++}
       else {step=1}
      //call function "slideit()" every 2.5 seconds
        if (count < (3 * numImages)) {   // or however many times to repeat
        var tim = setTimeout(function(){ slideit(); },spd);
       }
       else {
       window.clearTimeout(tim);
       }
      }
      
      slideit();
      
      </script></head>
      
      <body>
      <a name="slide" href="http://www.vicsjavascripts.org.uk/StdImages/One.gif"></a>
      </body>
      
      </html>
      Vic

      God Loves You and will never love you less.

      http://www.vicsjavascripts.org/Home.htm

      If my post has been useful please donate to http://www.operationsmile.org.uk/

      Comment


      • #4
        Thanks for your help with this slide show. I appreciate your help.

        Comment

        Working...
        X