www.webdeveloper.com
Results 1 to 7 of 7

Thread: Please help with this javascript slideshow bug

Hybrid View

  1. #1
    Join Date
    Sep 2008
    Posts
    7

    Question Please help with this javascript slideshow bug

    Hi,

    In the slide show code below, there's a function to press "previous" and "next" links. The "next" one works fine, and if you keep pressing it, it cycles through all the slides.

    The "previous" one is a bit messed up, for some reason - it will go back a slide or two but then it will just go blank!

    Could you please help?
    Thank you!

    Code:
    <script type="text/javascript">
            start_slideshow(1, 3, 3000);
    
            var currentSlide = 1;
    
            function start_slideshow(start_frame, end_frame, delay) {
                id = setTimeout(switch_slides(start_frame,start_frame,end_frame, delay), delay);
            }
    
            function switch_slides(frame, start_frame, end_frame, delay) {
                
                return (function() {
                                 
                    Effect.Fade('slide' + frame, { duration: 1.0 });
                    
                    if (frame == end_frame) {
                        frame = start_frame; 
                        currentSlide = frame;
                    } else {
                        frame = frame + 1; 
                        currentSlide = frame;
                    }
                    
                    Effect.Appear('slide' + frame, { duration: 1.0 });
                    
                    if (delay == 1000) {
                        delay = 3000; 
                    }
                    
                    id = setTimeout(switch_slides(frame, start_frame, end_frame, delay), delay);
                })
            }
    
            function stop_slideshow() {
                clearTimeout(id);
            }
            
            function next_slide() {
                
                clearTimeout(id);
    
                Effect.Fade('slide' + currentSlide, { duration: 1.0 });
                
                if (currentSlide == 4) {
                    currentSlide = 0;
                }
                
                currentSlide = currentSlide + 1;
                Effect.Appear('slide' + currentSlide, { duration: 1.0 });
                id = setTimeout(switch_slides(currentSlide, currentSlide, currentSlide, delay), delay);
            }
            
            function previous_slide() {
                
                clearTimeout(id);
                
                if (currentSlide == 0) {
                    currentSlide = 1;
                } else {
                  Effect.Fade('slide' + currentSlide, { duration: 1.0 });
                  
                  currentSlide = currentSlide - 1;
                  Effect.Appear('slide' + currentSlide, { duration: 1.0 });
                  id = setTimeout(switch_slides(currentSlide, currentSlide, currentSlide, delay), delay);
                }
            }
            
        </script>
    The previous/next links are like this:

    Code:
    <a href="#" onclick="next_slide()">Next</a>
    <a href="#" onclick="previous_slide()">Previous</a>
    Last edited by lisali; 01-29-2010 at 07:46 AM.

  2. #2
    Join Date
    Apr 2003
    Location
    Netherlands
    Posts
    21,654
    Try in previous_slide:
    Code:
                if (currentSlide == 0) {
                    currentSlide = 4;
    At least 98% of internet users' DNA is identical to that of chimpanzees

  3. #3
    Join Date
    Sep 2008
    Posts
    7
    Quote Originally Posted by Fang View Post
    Try in previous_slide:
    Code:
                if (currentSlide == 0) {
                    currentSlide = 4;

    Hi Fang - many thanks for your reply. I tried that, it did not make any difference, unfortunately

    Thanks!

  4. #4
    Join Date
    Apr 2003
    Location
    Netherlands
    Posts
    21,654
    Do you have a 'working' example?
    At least 98% of internet users' DNA is identical to that of chimpanzees

  5. #5
    Join Date
    Sep 2008
    Posts
    7
    Hi Fang,

    Many thanks for your reply.

    Here's an example:

    http://www.sixia.com/index.html

    If you click the "next" button a couple of times, it's fine. But if you click the "previous" button and go before the first slide, it's blank...

    It also seems if you click the "next" button too fast, it will go blank too??

    Thanks!

  6. #6
    Join Date
    Apr 2003
    Location
    Netherlands
    Posts
    21,654
    delay hasn't been defined
    At least 98% of internet users' DNA is identical to that of chimpanzees

  7. #7
    Join Date
    Sep 2008
    Posts
    7
    Hi - how do I do that?

Thread Information

Users Browsing this Thread

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

Tags for this Thread

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