I've implemented some modifications on SlickGrid Class (slick.grid.js attached) to accept jScrollPane plugin.
var jScrollApi;
var node = $("#myGrid")
var options = $.extend({
// get
getScrollPosition: function (viewport) {
return { top: jScrollApi.getContentPositionY(), left: jScrollApi.getContentPositionX() }
},
getScrollDimensions: function(viewport) { return { width: 17, height: 17 } }, //calculate yourself the scrolls dimentions
setScrollLeft: function(viewport, value) {
if (jScrollApi) {
jScrollApi.scrollByX(value);
}
else {
viewport.scrollLeft(value);
}
},
setScrollTop: (viewport, value) => {
if (jScrollApi) {
setTimeout(function () { jScrollApi.scrollToY(value); }, 0); // keep the flow
}
else {
viewport.scrollTop(value);
}
}
}, your_slickGrid_options);
var grid = new Slick.Grid(node, dataView, columns, options);
var viewport = node.find("div.slick-viewport")
viewport.jScrollPane({
showArrows: true, mouseWheelSpeed: 100,
animateScroll: true
, animateEase: "easeOutQuart",
verticalGutter: 0,
verticalDragMinHeight: 10,
horizontalDragMinHeight: 10
});
jScrollApi = viewport.data('jsp');