summaryrefslogtreecommitdiffstats
path: root/slick.grid.js
diff options
context:
space:
mode:
authormleibman <michael.leibman@gmail.com>2010-12-04 19:38:27 -0800
committermleibman <michael.leibman@gmail.com>2010-12-04 19:38:27 -0800
commitb93b4e3ac3bc232ae8065efe5cea43d88f8a6cd9 (patch)
treedb9e03ed82479c3e9cea0365039d0b9852fe47ec /slick.grid.js
parentb61ceba5e9c5a19c52c10dcbb7bc04a862c84449 (diff)
downloadSlickGrid-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.js46
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,