Go Back   CodingForums.com > :: Client side development > JavaScript programming > JavaScript frameworks

Before you post, read our: Rules & Posting Guidelines

Reply
 
Thread Tools Rate Thread
Enjoy an ad free experience by logging in. Not a member yet? Register.
Old 01-29-2010, 01:44 PM   PM User | #1
lisali
New to the CF scene

 
Join Date: Sep 2008
Posts: 3
Thanks: 0
Thanked 0 Times in 0 Posts
lisali is an unknown quantity at this point
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 01:46 PM..
lisali is offline   Reply With Quote
Reply

Bookmarks

Tags
blank, bug, javascript, scriptaculous, slideshow

Jump To Top of Thread


Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 05:40 AM.


Advertisement
Log in to turn off these ads.