JSFiddle - React, Tailwind, and code Playground
HTML
<div id="content">text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text...
CSS
#content {
width: 6000px;
}
JavaScript
jQuery(function ($) {
var $doc = $(document),
ratio = $doc.width() / $(window).width(), //отношение окна к общей ширене блока, чтобы тянуть весь блок.
mousepos, to;
$doc.on('mousedown', '#content', dragstart);
function dragstart(e) {
e.preventDefault();
mousepos = e.screenX;
$doc.on('mousemove.drag', drag);
$doc.one('mouseup.drag mouseout.drag', dragstop);
}
function drag(e) {
clearTimeout(to);
var delta = (e.screenX - mousepos) * ratio;
to = setTimeout(function () { // таймаут чтобы события от мыши не перекрывали друг друга,
$doc.scrollLeft($doc.scrollLeft() - delta);
mousepos = e.screenX;
}, 1);
}
function dragstop(e) {
$doc.off('mousemove.drag mouseup.drag mouseout.drag');
}
});