Circular Slider - A JQuery plugin
JavaScript CSS
Latest commit 01ff567 May 28, 2015 @princejwesley Add mouseleave event

README.md

circular-slider - A jQuery Plugin

Circular slider is a jQuery plugin which helps to slide range of values and images. It supports half(top/bottom/up/down) and full circle shapes.

Demo Page

Gitter

circular slider

For angular version(without JQuery dependency), Try Angular Circular Slider

Getting Started

Download the latest code

Fork this repository or download js/css files from dist directory.

Including it on your page

Include jQuery and this plugin on a page.

<link rel="stylesheet" href="circular-slider.min.css" />
<script src="jquery.js"></script>
<script src="circular-slider.min.js"></script>

Basic Usage

<div id="slider"></div>
var slider = $('#slider').CircularSlider();

Properties

radius

radius of the circle in px.

innerCircleRatio

ratio of inner circle area(used to display current sliding value). ratio can be in the range between 0.10 and 0.90 (open interval).

min

min value of the slider.

max

max value of the slider.

value

Initial value of the slider.

clockwise

direction of the sliding value.

labelSuffix

label to be used as suffix along with current sliding value.

labelPrefix

label to be used as prefix along with current sliding value.

shape

shape of the slider. Supported shapes are:

  1. 'Circle' (default)
  2. 'Half Circle'
  3. 'Half Circle Left'
  4. 'Half Circle Right'
  5. 'Half Circle Bottom'

touch

touch support. (default: true)

animate

linear animation support. (dafault: true)

animateDuration

Animation duration in milliseconds. (default: 360ms)

selectable

text selection enabled or not. (default: false)

handleDist

Distance between handle and shape center in percentage(default: 100)

Functions

function setValue(value)

Set current value of the slider.

function getValue()

Get current value of the slider.

function setRange(min, max)

Set sliding range of the slider. min is a minimum value and max is a maximum sliding value. If the current value is not in range, min will be set as current value

function getRadius()

Get current radius of the slider.

function setRadius(radius)

Set current radius of the slider.

function getAnimate()

Get current animate property of the slider.

function setAnimate(animate)

Set current animate property of the slider.

function getAnimateDuration()

Get current animateDuration value of the slider.

function setAnimateDuration(duration)

Set current animateDuration value of the slider.

Callback

function slide(ui, value)

slide callback is triggered whenever there is a change in sliding value.

Parameters:

ui -  dom element
value - Current sliding value

function onSlideEnd(ui, value)

onSlideEnd callback is triggered when the user action is done (on mouse up/touch end or click).

Parameters:

ui -  dom element
value - Current sliding value

function formLabel(value, prefix, suffix)

formLabel callback is triggered with current sliding value, prefix and suffix. If it is defined, it will be used as a source for inner circle area.

Parameters:

value - Current sliding value
prefix - prefix configured
suffix - suffix configured

Default Settings

Slider with default values

var slider = $('#slider').CircularSlider({
    radius: 75,
    innerCircleRatio: '0.5',
    handleDist: 100,
    min: 0,
    max: 359,
    value: 0,
    clockwise: true,
    labelSuffix: "",
    labelPrefix: "",
    shape: "Circle",
    touch: true,
    animate: true,
    animateDuration : 360,
    selectable: false,
    slide: function(ui, value) {},
    onSlideEnd: function(ui, value) {},
    formLabel: undefined
});

CSS classes

Use the below css classes for customization

.jcs-panel - circular slider panel

.jcs - Slider area

.jcs-value - Inner circle area

.jcs-indicator - Slide indicator ball

Advanced Usage (image carousel)

var imageSlider = $('#slider-customized').CircularSlider({
    min : 0,
    max: 359,
    radius: 100,
    innerCircleRatio : .7,
    formLabel : function(value, prefix, suffix) {
        return '<img src="assets/images/baby'+ parseInt(value / 26)+'.png"></img>';
    },
    slide : function(ui, value) {
        var colors = ['deeppink', 'seagreen', 'deepskyblue', 'coral', 'cadetblue', 'olive', 'chocolate',
            'yellowgreen', 'cornflowerblue', 'slategrey', 'salmon', 'brown', 'darkgoldenrod', 'dimgrey'];
        var color = colors[parseInt(value / 26)];
        ui.find('.jcs').css({'border-color' : color });
        ui.find('.jcs-indicator').css({'background' : color });
    }
});

License

This plugin is licensed under the MIT license.

Copyright (c) 2014 Prince John Wesley