(function($) { $.fn.horizontaldragger = function (settings) { var config = { classModifier: "cds", easing: "linear", // recommend "easeOutExpo" - requires jQuery Easing plugin velocityFactor: 2, velocityCheckWait: 50, afterScrollDuration: 1000, cursor: "n-resize", width: "auto", height: "200px" }; if (settings) { $.extend(config, settings); } var startPosition = 0; var startScrollLeft = 0; var velocity = 0; var isMouseDown = false; var timer; $area = $(this); $area.css({"MozUserSelect": "none"}) .bind("mousedown.disableTextSelect selectstart.disableTextSelect", function() { return false; }); // Starts a scroll $area.bind("mousedown", function(e) { startPosition = parseInt(e.pageX, 10); startScrollLeft = $area.scrollLeft(); isMouseDown = true; ///alert($area.attr("id")); }); $area.bind("mouseup", function(e) { isMouseDown = false; }); $area.mousemove( function (e) { if (isMouseDown) { var scrollToPosition = startScrollLeft + (startPosition - e.pageX); //alert(scrollToPosition); $area.scrollLeft(scrollToPosition); return false; } }); } })(jQuery);