From 574c8965e515392069fafa8bafc2412a5186f245 Mon Sep 17 00:00:00 2001 From: Lucas Date: Thu, 25 Oct 2012 13:39:06 -0200 Subject: [PATCH] add option navLoop, default true. If false, when user reach end or start of slides it will hide button to go next/previous --- responsiveslides.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/responsiveslides.js b/responsiveslides.js index d6ef35d..03e5f08 100644 --- a/responsiveslides.js +++ b/responsiveslides.js @@ -18,6 +18,7 @@ "timeout": 4000, // Integer: Time between slide transitions, in milliseconds "pager": false, // Boolean: Show pager, true or false "nav": false, // Boolean: Show navigation, true or false + "navLoop": true, // Boolean: block loop when reach first or last slide, only if nav=true/auto=false, true or false "random": false, // Boolean: Randomize the order of the slides, true or false "pause": false, // Boolean: Pause on hover, true or false "pauseControls": false, // Boolean: Pause when hovering controls, true or false @@ -69,9 +70,36 @@ visible = {"float": "left", "position": "relative"}, hidden = {"float": "none", "position": "absolute"}, + // disable nav + disableNavArrows = function(idx){ + if(settings.nav && !settings.navLoop && !settings.auto){ + var lastSlide = $slide.length - 1; + var next = $("." + namespaceIdx + "_nav.next"), + prev = $("." + namespaceIdx + "_nav.prev"), + lastOrFirst = (idx === lastSlide || idx === 0); + + if(idx === 0){ + prev.fadeOut(); + next.fadeIn(); + } + if(idx === lastSlide){ + prev.fadeIn(); + next.fadeOut(); + } + + if(!lastOrFirst){ + prev.fadeIn(); + next.fadeIn(); + } + } + } + // Fading animation slideTo = function (idx) { settings.before(); + + disableNavArrows(idx); + $slide .stop() .fadeOut(fadeTime, function () { @@ -250,6 +278,8 @@ $this.after(navMarkup); } + disableNavArrows(0); + var $trigger = $("." + namespaceIdx + "_nav"), $prev = $("." + namespaceIdx + "_nav.prev");