diff options
author | mleibman <michael.leibman@gmail.com> | 2010-12-04 19:38:27 -0800 |
---|---|---|
committer | mleibman <michael.leibman@gmail.com> | 2010-12-04 19:38:27 -0800 |
commit | b93b4e3ac3bc232ae8065efe5cea43d88f8a6cd9 (patch) | |
tree | db9e03ed82479c3e9cea0365039d0b9852fe47ec /slick.grid.js | |
parent | b61ceba5e9c5a19c52c10dcbb7bc04a862c84449 (diff) | |
download | SlickGrid-b93b4e3ac3bc232ae8065efe5cea43d88f8a6cd9.zip SlickGrid-b93b4e3ac3bc232ae8065efe5cea43d88f8a6cd9.tar.gz SlickGrid-b93b4e3ac3bc232ae8065efe5cea43d88f8a6cd9.tar.bz2 |
Added an onScroll event.
Diffstat (limited to 'slick.grid.js')
-rw-r--r-- | slick.grid.js | 46 |
1 files changed, 24 insertions, 22 deletions
diff --git a/slick.grid.js b/slick.grid.js index 8a3a09b..7804539 100644 --- a/slick.grid.js +++ b/slick.grid.js @@ -1319,32 +1319,34 @@ if (typeof Slick === "undefined") { $headerRowScroller[0].scrollLeft = scrollLeft; } - if (!scrollDist) return; + if (scrollDist) { + scrollDir = prevScrollTop < scrollTop ? 1 : -1; + prevScrollTop = scrollTop; - scrollDir = prevScrollTop < scrollTop ? 1 : -1; - prevScrollTop = scrollTop; + // switch virtual pages if needed + if (scrollDist < viewportH) { + scrollTo(scrollTop + offset); + } + else { + var oldOffset = offset; + page = Math.min(n - 1, Math.floor(scrollTop * ((th - viewportH) / (h - viewportH)) * (1 / ph))); + offset = Math.round(page * cj); + if (oldOffset != offset) + invalidateAllRows(); + } - // switch virtual pages if needed - if (scrollDist < viewportH) { - scrollTo(scrollTop + offset); - } - else { - var oldOffset = offset; - page = Math.min(n - 1, Math.floor(scrollTop * ((th - viewportH) / (h - viewportH)) * (1 / ph))); - offset = Math.round(page * cj); - if (oldOffset != offset) - invalidateAllRows(); - } + if (h_render) + clearTimeout(h_render); - if (h_render) - clearTimeout(h_render); + if (Math.abs(lastRenderedScrollTop - scrollTop) < viewportH) + render(); + else + h_render = setTimeout(render, 50); - if (Math.abs(lastRenderedScrollTop - scrollTop) < viewportH) - render(); - else - h_render = setTimeout(render, 50); + self.onViewportChanged.notify({}); + } - self.onViewportChanged.notify({}); + self.onScroll.notify({scrollLeft:scrollLeft, scrollTop:scrollTop}); } function asyncPostProcessRows() { @@ -2196,6 +2198,7 @@ if (typeof Slick === "undefined") { "slickGridVersion": "2.0a1", // Events + "onScroll": new Slick.Event(), "onSort": new Slick.Event(), "onHeaderContextMenu": new Slick.Event(), "onHeaderClick": new Slick.Event(), @@ -2277,7 +2280,6 @@ if (typeof Slick === "undefined") { "getTopPanel": getTopPanel, "showTopPanel": showTopPanel, "hideTopPanel": hideTopPanel, - "showHeaderRowColumns": showHeaderRowColumns, "hideHeaderRowColumns": hideHeaderRowColumns, "getHeaderRow": getHeaderRow, |