JSFiddle - React, Tailwind, and code Playground
by Stallman41
HTML
<br/><br/>
<div style="padding: 10px;">
<input type="hidden" value="40" id="slider1"/>
</div>
CSS
.pp-slider { width: 150px; float:left; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -o-user-select: none; user-select: none; height: 30px; }
.pp-slider .pp-slider-scale { background-color: #aaa; height: 1px; border-bottom: 1px solid #efefef; width: 120px; margin-top: 6px; float: left; }
.pp-slider .pp-slider-scale .pp-slider-button { width: 12px; border-radius: 2px; border: 1px solid #adadad; height: 16px; position: relative; top: -7px; left: 0px; background-color: #efefef; cursor: pointer; }
.pp-slider .pp-slider-scale .pp-slider-button .pp-slider-divies { border-left: 1px solid #adadad; border-right: 1px solid #adadad; position: relative; left: 3px; top: 3px; width: 4px; height: 10px; }
.pp-slider .pp-slider-scale .pp-slider-button:hover { border-color: #777; background-color: #eee; }
.pp-slider .pp-slider-scale .pp-slider-tooltip { width: 24px; height: 20px; position: relative; top: -5px; left: 0px; text-align: center; font-size: 10px; color: #aaa; }
.pp-slider .pp-slider-min { float: left; width: 15px; color: #aaa; font-size: 10px; }
.pp-slider .pp-slider-max { float: left; width: 15px; color: #aaa; font-size: 10px; text-align: right; }
JavaScript
(function ($) {
var PPSliderClass = function (el, opts) {
var element = $(el);
var options = opts;
var isMouseDown = false;
var currentVal = 0;
element.wrap('<div/>')
var container = $(el).parent();
container.addClass('pp-slider');
container.addClass('clearfix');
container.append('<div class="pp-slider-min">-</div><div class="pp-slider-scale"><div class="pp-slider-button"><div class="pp-slider-divies"></div></div><div class="pp-slider-tooltip"></div></div><div class="pp-slider-max">+</div>');
if (typeof(options) != 'undefined' && typeof(options.hideTooltip) != 'undefined' && options.hideTooltip == true)
{
container.find('.pp-slider-tooltip').hide();
}
if (typeof(options.width) != 'undefined')
{
container.css('width',(options.width+'px'));
}
container.find('.pp-slider-scale').css('width',(container.width()-30)+'px');
var startSlide = function (e) {
isMouseDown = true;
var pos = getMousePosition(e);
startMouseX = pos.x;
lastElemLeft = ($(this).offset().left - $(this).parent().offset().left);
updatePosition(e);
return false;
};
var getMousePosition = function (e) {
//container.animate({ scrollTop: rowHeight }, options.scrollSpeed, 'linear', ScrollComplete());
var posx = 0;
var posy = 0;
if (!e) var e = window.event;
if (e.pageX || e.pageY) {
posx = e.pageX;
posy = e.pageY;
}
else if (e.clientX || e.clientY) {
posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
}
return { 'x': posx, 'y': posy };
};
var...