javaccripttech - Image Slider

HTML

<div id="slideshow">
    <div id="slideshow-wrapper">
       <div class="slide" id="slide1"></div>
        <div class="slide" id="slide2"></div>
        <div class="slide" id="slide3"></div>
        <div class="slide" id="slide4"></div>
    </div>
    <div id="slideshow-nav"> <a href="#slide1">1</a>
 <a href="#slide2">2</a>
 <a href="#slide3">3</a>
 <a href="#slide4">4</a>

        <div><span id="slideshow-nav-current">1</span> of <span id="slideshow-nav-total"></span>
        </div>
    </div>
</div>

CSS

#slideshow {
    margin: 2em auto;
    width: 70%;
    max-width: 40em;
    overflow: hidden;
}

#slideshow-wrapper {
    width: 1600em;
    height: 15em;
    position: relative;
}

div.slide {
    width: 40em;
    height: 15em;
    float: left;
    background-repeat: no-repeat;
    background-size: contain;
}

#slide1 {
    background-image: url(http://www.hdwallpapersinn.com/wp-content/uploads/2015/02/Natural-Hd-wallpapers-statspic.jpg);
}

#slide2 {
    background-image: url(http://feelgrafix.com/data_images/out/20/930316-desert.jpg);
}

#slide3 {
    background-image: url(http://wallpaperswiki.org/wallpapers/2012/10/Nature-Landscape-Wonderful-Natural-Scenery-Desktop-Picture--485x728.jpg);
}

#slide4 {
    background-image: url(http://bestpics.in/wp-content/uploads/2014/07/natural_beautiful_green.jpg);
}

#slideshow-nav {
    margin: 1em 0;
    text-align: center;
}

#slideshow-nav a {
    display: inline-block;
    width: 1.5em;
    height: 1.5em;
    line-height: 1.5;
    border: 1px solid silver;
    color: #333;
    text-decoration: none;
    margin-right: 0.5em;
}

#slideshow-nav a.active {
    background: #000;
    color: #fff;
    border-color: #000;
}

JavaScript

var SlideshowSlider = {

    paginate: function () {
        var slides = $('div.slide', '#slideshow'),
            total = slides.length;
        $('#slideshow-nav-total').text(total);
        slides.each(function (i) {
            $(this).data('index', i + 1);
        });
    },

    move: function () {
        $('a', '#slideshow-nav').click(function (e) {
            e.preventDefault();
            var $a = $(this);
            var aherf = $a.attr('href');
            var slide = $("#slideshow-wrapper").find(aherf);
            var wrapper = $('#slideshow-wrapper');

            wrapper.animate({
                left: -slide.position().left
            }, 1000, 'linear', function () {
                $('#slideshow-nav-current').text(slide.data('index'));
                $a.addClass('active').siblings('a').removeClass('active');
            });

        });
    },

    init: function () {
        this.paginate();
        this.move();
    }

};

$(function () {
    SlideshowSlider.init();
});