Responsive block slider - v1.0.0
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
dist
src
.eslintrc
.gitignore
LICENSE.md
README.md
gulpfile.js
package.json

README.md

BlockSlider

Yet another slider.. yet this one your slides are dictated by CSS or your grid system.

This slider does not come with any controls, it autoslides based on the supplied timing values, or the plugins default timing.

It's main use is for grouping company logos onto a single row, as the screen size reduces the logos do not stack, instead the grid (Your CSS) dictates how many items to show on the screen at any given moment. The cycle resets following a screen resize event.

  • IE9+ compatible as it uses CSS transforms. On IE9 there is no animation between slide transitions due to lack of CSS transition support on IE9.
  • Library agnostic. If jQuery is present it will register itself as a plugin
  • Only 2.5k minified. ~1kb with Gzip.
  • API allows for timing adjustments to transition, and slide interval.
  • Number of items in view controlled by CSS / whatever grid system you are using.
  • Built with performance in mind, uses minimal DOM lookups and caches values wherever possible.
  • Written in ES6/ES2015 and transpiled into ES5 via Babel

##Demo http://codepen.io/rbrtsmith/pen/ZbeXqa

##Install

NPM

npm install block-slider

Bower

bower install block-slider --save

##Useage HTML markup - This example is using the Twitter Bootstrap grid, and for large screens displays 6 items with no sliding, smaller screens it displays 4 items, and 3 items on the smallest screens. You may use any grid system you like, or roll with your own. You are not restricted to uses the <div>s in this example you can use any block-level elements that suit your purpose. You can also nest anything inside of the individual items.

<div id="block-slider">
    <div class="js-block-slider__wrap">
        <div class="row js-block-slider__items">
            <div class="col-md-2 col-sm-3 col-xs-4">
               ...
            </div>
            <div class="col-md-2 col-sm-3 col-xs-4">
               ...
            </div>
            <div class="col-md-2 col-sm-3 col-xs-4">
               ...
            </div>
            <div class="col-md-2 col-sm-3 col-xs-4">
               ...
            </div>
            <div class="col-md-2 col-sm-3 col-xs-4">
               ...
            </div>
            <div class="col-md-2 col-sm-3 col-xs-4">
               ...
            </div>
        </div>                    
    </div>                    
</div>

JavaScript

BlockSlider(document.getElementById('block-slider'));

Or JavaScript + jQuery

$('#block-slider').BlockSlider();

##Settings / API The Block Slider can take an optional second argument (First when using jQuery).
Default settings:

{
    //Interval time between slides, ms
    sInterval: 2000,
    
    //Transition time when sliding, ms
    sTransition: 400,
    
    //Wrapper class
    wrapClass: '.js-block-slider__wrap',
    
    //Items class
    itemsClass: '.js-block-slider__items'
}

##Examples

JavaScript

BlockSlider(document.getElementById('block-slider'), {
    sInterval: 1000,
    sTransition: 200
});

JavaScript + jQuery

$('#block-slider').BlockSlider({
    sInterval: 1000,
    sTransition: 200
});

JavaScript + jQuery - changing classes

$('#block-slider').BlockSlider({
    sInterval: 1000,
    sTransition: 200,
    wrapClass: '.logos-wrap',
    itemsClass: '.logos'
});

##License MIT License