Slot-Machine Style Number & Option Picker In jQuery - Drum.js
File Size: | 193 KB |
---|---|
Views Total: | 3606 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

Drum.js is a jQuery plugin for creating an iOS-style picker view where the users are able to select numeric values and/or select options by rotating the wheels just like a slot machine.
Fully responsive, accessible and mobile-friendly.
How to use it:
1. Include the latest version of jQuery library and the minified version of the Drum.js plugin on the web page.
<script src="/path/to/jquery.min.js"></script> <script src="/path/to/jquery.drum.min.js"></script>
2. Create an empty container for the picker view.
<div class="drum"></div>
3. Initialize the plugin to generate a basic picker view.
$('.drum').drum({ // options here });
4. Apply your own CSS styles to the picker view.
.drum-viewport { /* CSS styles here */ } .drum-item { /* CSS styles here */ } .drum { /* CSS styles here */ } .drum-item-current { /* CSS styles here */ }
5. The plugin also supports the native select box.
<select class="language"> <option>jQuery</option> <option>Script</option> <option>Net</option> <option>CSS</option> <option>JavaScript</option> <option>HTML</option> <option>ReactJS</option> </select>
$('.language').drum();
6. Customize the picker view by overring the default settings as displayed below.
$('.language').drum({ // default CSS classes classes: { 'drum-viewport': 'drum-viewport', 'drum-drum': 'drum-drum', }, // numer or select type: 'number', // min/max value min: 0, max: Infinity, // step size step: 1, // asc or desc orderAsc: true, // allows dragging outside the picker watchOutside: true, // Limit where the picker can reach on the edges as part of the viewport // 1 means the picker can be spinned to the viewport edge but no further // .5 - the picker can't go further than half the viewport // value higher than 1 will let the picker go beyond viewport edgeLimit: .8, // acceleration (deceleration) acceleration: 300, // the maximum number of items to render renderItemsNum: 100, // the maximum offset the picker can spin to after a swipe in pixels maxSpinOffset: 500 });
7. Event handlers.
$('.drum').drum() .on('dragstart', function(){ // on drag start }) .on('drag', function(){ // during drag }) .on('dragend', function(){ // on drag end }) .on('change', function(){ // on value change })
Changelog:
v0.1.2 (2020-04-15)
- Focus drum on click (touch)
v0.1.1 (2019-08-12)
- Fix dragend event name
This awesome jQuery plugin is developed by tigrr. For more Advanced Usages, please check the demo page or visit the official website.