Ну, тут все достаточно просто.
Возьмём по горизонтали: у нас есть css свойство left (ну, или margin-left), которое однозначно определяет положение слайдера. Также, каждое мышиное событие имеет свойство .pageX, которое однозначно определяет положение курсора.
Дальше: при опускании кнопки над слайдером высчитываем что-то типа
offset = left - e.pageX
, и пока не поднята кнопка при каждом mousemove
над документом считаем:
left = offset + e.pageX
.
Теоретически, эта привязка нехороша, если пользователь решит поменять размер окна во время перетягивания, но практически это делать пока никому не приходило в голову.