JSFiddle - React, Tailwind, and code Playground

HTML

<!-- Obsah s posuvníkem -->
<div id="obsah">
    <img src="http://www.drahak.eu/images/banner/islandsoft.png" alt="Islandsoft banner" />
 </div>

CSS

* { 
    margin: 0; 
    padding: 0; 
}

body {
    background: #f0f0f0; 
}

#obsah { 
    margin: 20px auto; 
}

.posuvnik {
    width: 350px;
    background: #fff;
    border: 1px solid #dcdcdc;
    overflow: auto; /** Některé prohlížeče nepodporují overflow-x a overflow-y */
    overflow-x: auto;
    overflow-y: hidden;
}

JavaScript

(function() {

    // jQuery plug-in
    $.fn.posuvnik = function( rychlost ) {
    
        // Funkce
        var mouseMove = function(e) {
            // Opraví event, aby byl použitelný ve všech prohlížečích stejně
            e = $.event.fix(e);
            
            // Zjistí, kde je kurzor
            var vlevo = e.pageX-$(this).offset().left < ($(this).width()/2) ? true : false;
            // Zjistíme maximální možnou pozici posunu do prava
            var maximalniPosun = $(this).get(0).scrollWidth - $(this).get(0).clientWidth;
            
            // Zjistí, na kterou stranu se má posunout
            if(vlevo && !$(this).data('jeVlevo') ) {
                // Řekneme skriptu, že jsme vlevo
                $(this).data('jeVlevo', true);
                // Posune se vlevo
                $(this).stop().animate({ scrollLeft: 0 }, rychlost);
            } else if ( !vlevo && $(this).data('jeVlevo') ) {
                // Řekneme skriptu, že jsme vpravo
                $(this).data('jeVlevo', false);
                // Posunese vpravo
                $(this).stop().animate({ scrollLeft: maximalniPosun }, rychlost);
            }    
        }, mouseLeave = function(e) {
            // Zastaví posouvání
            $(this).stop();    
            // Zjistíme, kam budeme posouvat při případném návratu kurzoru
            $(this).data('jeVlevo', ($(this).data('jeVlevo') ? false : true));
        }, mouseEnter = function(e) {
            // Zavoláme funkci mousemove, kterou jsme definovali nahoře
            $(this).trigger("mousemove");
        };
        
        // Pro každý prvek předaný pluginu
        return this.each(function() {
            $(this)
            .addClass('posuvnik')
            .data('jeVlevo', true)
            .bind({
                mousemove: mouseMove,
                mouseleave: mouseLeave,
                mouseenter: mouseEnter
            });
        });
    
    };
    
})( jQuery );

$(function() {
   ...