Giter Club home page Giter Club logo

scrubber's Introduction

scrubber

Simple, attractive html+js scrubber control.

Tested in recent versions of Firefox, Chrome, Safari, and IE9+. Works with mouse events and touch events.

Example Usage:

// Make a new scrubber
var scrubber = new ScrubberView();
// Append it to the dom
document.body.appendChild(scrubber.elt);

// onScrubStart is called whenever a user starts scrubbing
scrubber.onScrubStart = function (value) {
    console.log(value); // the value at the time of scrub start
}

// onValueChanged is called whenever the scrubber is moved.
scrubber.onValueChanged = function (value) {
  console.log(value); // the value at time of invocation
}

// onScrubEnd is called whenever a user stops scrubbing
scrubber.onScrubEnd = function (value) {
    console.log(value); // the value at the time of scrub end
}

// You can read and update the scrubber's min, max, step, value, and orientation
// using accessor functions
scrubber.min();// 0
scrubber.max(); // 1
scrubber.step(); // 0
scrubber.value(); // 0
scrubber.orientation(); // 'horizontal'

scruber.value(0.5); // Updates the scrubber's value
scrubber.value(); // 0.5

// Setters are chainable
scrubber.min(-10).max(10).step(.5).value(3).orientation('vertical');

// jQuery isn't required, but you can use it to append scrubbers after you've
// created them if you want
var scrubber2 = new ScrubberView();
$('.my-container').append(scrubber2.elt);

// By default, scrubbers are 200px wide. You can use css to change their size
scrubber2.elt.style.width = "300px";

Live example at http://jsbin.com/iyexuVAR/8/

scrubber's People

Contributors

jwmerrill avatar ctlusto avatar freejoe76 avatar eluberoff avatar

Stargazers

Keyth M Citizen  avatar Ben Wowo avatar Ananth Venkatesh avatar  avatar  avatar  avatar Daniel Correa avatar Robbie Capps avatar Ilya Bezrukov avatar Harvey avatar Hector Patino avatar Ollie avatar hongkuan avatar Ravi Shah avatar sbhat avatar Adam Covati avatar sonopictorial avatar Sawyer Click avatar Hackdemon23 avatar Rubén G. avatar arunsh avatar Wahyudi Wibowo avatar Nigel Chiwaya avatar Gary Ross avatar Cyril de Wit avatar Tom Barrasso avatar Alexandru Bogdan Bostan avatar  avatar Jivko Todorov avatar Vlad Trukhin avatar Tom Conroy avatar Aaron Adams avatar  avatar Chris J. Lee avatar David Huerta avatar Emmanuel Salomon avatar zooofeex avatar Daniil T. avatar  avatar Douglas Moura avatar timelyportfolio avatar Michael Anthony avatar Oli Larkin avatar  avatar Ziyad Parekh avatar Eric Gelinas avatar JT5D avatar  avatar  avatar Johnny Ray Austin avatar

Watchers

 avatar Eric Berger avatar  avatar James Cloos avatar Michael Anthony avatar  avatar  avatar  avatar Hackdemon23 avatar

scrubber's Issues

Scrubber in bootstrap columns

The scrubber doesn't appear to be functioning quite right if it's not in the leftmost column using bootstrap's grid system. Here's an example: http://jsbin.com/EBuJuFAk/1/

Note that the scrubber is still functional, but it's as though the thumb is really to the left of where it's displayed. Maybe this has something to do with the setValueFromPageX function?

Cursor behavior while dragging in Safari 8

In Safari 8, a hovered .thumb displays cursor: pointer, like you would expect, but once you start dragging it switches to cursor: text. It just looks weird. When I'm dragging a UI element, I don't want my cursor to imply I should be highlighting something.

Only an issue in Safari, and it may only be an issue in the latest release, but I'm not sure. I'm mainly bringing this up because it also affects the sliders in the Desmos app.

Does Safari have an idiosyncratic problem with the selector in here?

.scrubber .thumb:hover,
.scrubber-vert .thumb:hover,
.thumb.dragging {
  border-width: 0px;
  opacity: 1;
}

Does it need to be:

.scrubber .thumb.dragging {...}

for some reason?

get value at drag/scrub end

Hey there!

Great plugin. I was curious if you knew how I could accomplish a particular feature ( or if you'd be interested in building it in to the plugin ). I'd like a callback for when the user has stopped scrubbing. We current have the onValueChange method which is great for updating at each step, but I have a processing-intensive task I'd like to trigger only when the user has let go of the scrubber / stopped scrubbing.

Currently I'm trying to add events via jQuery,

$(scrubber.elt).find('.track, .thumb').on('dragend mouseup click', () => {
  console.log('scrubber released');
});

.. which seems to work well for desktop but not at all for mobile.

Any input much appreciated. :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.