JSFiddle - React, Tailwind, and code Playground

by alfredopacino

HTML

<div id="slider"></div>

CSS

body {
	font-family: Arial, Helvetica, sans-serif;
	background:#000;
}

table {
	font-size: 1em;
}

.ui-draggable, .ui-droppable {
	background-position: top;
}

#slider {
    width: ;
    margin: 0 auto;
}

.ui-slider-horizontal {
    height: 3px;
    width: 75%;

}

.ui-slider {
    border: 0;
    background-color: #ededed;
    border-radius: 6px;
    top: 50%;
}

.ui-slider-handle {
    width: 19px;
    height: 18px;
    background-color: #ededed;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    top: 50%;
    margin-top: -4px;
}

.ui-slider-handle:hover {
    opacity: 0.8;
}

.tickmark {
    display:inline-block;
    width: 1px;
    outline: 1px solid #ff0000;
box-shadow: 0 0 1px rgba(255,255,255,0);

    background-color: #ededed;
    height: 12px;
    position:absolute;
    top: -150%;
}

JavaScript

function createSlider() {
    $("#slider").slider({
        min: 1,
        max: 10 * 3, 
        step: 1, 
        range: false,
        orientation: 'horizontal',
        create: function(event, ui) { 
            setSliderTicks(event.target);
        }
    });
}

function setSliderTicks(){
    var $slider =  $('#slider');
    var max =  $slider.slider("option", "max");    
    var spacing =  100 / (max - 1);
    console.log('Spacing: ' + spacing);

    $slider.find('.tickmark').remove();
    for (var i = 0; i < max ; i++) {
        $('<span class="tickmark"></span>').css('left', (spacing * i) +  '%').appendTo($slider); 
     }
}
createSlider()