JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.0/jquery.js"></script>
<ul>
<li>Title 1</li>
<li>Title 2</li>
<li>Title 3</li>
<li>Title 4</li>
<li>Title 5</li>
<li>Title 6</li>
<li>Title 7</li>
<li>Title 8</li>
<li>Title 9</li>
<li>Title 10</li>
<li>Title 11</li>
<li>Title 12</li>
<li>Title 13</li>
<li>Title 14</li>
<li>Title 15</li>
<li>Title 16</li>
<li>Title 17</li>
</ul>
CSS
ul {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
ul{
list-style:none;
padding:0;
margin:0;
height:400px;
overflow-y:auto;
}
ul li{
padding:12px;
border-bottom:1px solid #000;
}
JavaScript
$(function(){
var curDown = false,
curYPos = 0,
curXPos = 0;
$("ul").mousemove(function(m){
if(curDown === true){
$("ul").scrollTop($("ul").scrollTop() + (curYPos - m.pageY));
$("ul").scrollLeft($("ul").scrollLeft() + (curXPos - m.pageX));
}
});
$("ul").mousedown(function(m){
curDown = true;
curYPos = m.pageY;
curXPos = m.pageX;
});
$("ul").mouseup(function(){
curDown = false;
});
})