jquery - Hiding Prev/Next buttons on first/last pages -
okay, i've done searching can't quite find works code, thought i'd give shot.
i'm building slideshow-type navigation page (mostly learning exercise) , want able hide "prev" button on first slide , "next" button on last slide, can't seem work.
here's have far:
html
<div class="slide active-slide first"> <div class="content"> <p>first slide</p> </div> </div> <div class="slide"> <div class="content"> <p>second slide</p> </div> </div> <div class="slide last"> <div class="content"> <p>third slide</p> </div> </div> <div class="slider-nav"> <div class="prev"> prev </div> <div class="next"> next </div> </div> jquery
var main = function() { if($('.active-slide').hasclass('first')) { $('.prev').hide(); } else if ($('.active-slide').hasclass('last')) { $('.next').hide(); } else { $('.prev').show(); $('.next').show(); } $('.next').click(function() { var currentslide = $('.active-slide'); var nextslide = currentslide.next('.slide'); //if nextslide last slide, go first if(nextslide.length===0) { nextslide = $('.slide').first(); } currentslide.fadeout(500).removeclass('active-slide'); nextslide.fadein(1100).addclass('active-slide'); }); //prev slide function $('.prev').click(function() { var currentslide = $('.active-slide'); var prevslide = currentslide.prev('.slide'); if(prevslide.length===0) { prevslide = $('.slide').last(); } currentslide.fadeout(600).removeclass('active-slide'); prevslide.fadein(600).addclass('active-slide'); }); }; $(document).ready(main); here's jsfiddle same thing. feel there better way using "first" , "last" classes first , last slides, thought might easier. i'm open suggestions though!
please see corrected fiddle: http://jsfiddle.net/794f4yvw/12/ i've added prev/next check separate function , call every time slide switched:
function checknavigation() { if ($('.active-slide').hasclass('first')) { $('.prev').hide(); $('.next').show(); } else if ($('.active-slide').hasclass('last')) { $('.next').hide(); $('.prev').show(); } else { $('.prev').show(); $('.next').show(); } }
Comments
Post a Comment