Skip to content

Commit deab994

Browse files
committed
handleInertia attr
1 parent a5d9343 commit deab994

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

src/ui-scroll.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,16 @@ angular.module('ui.scroll', [])
7373
return parseNumber(result, defaultValue, isFloat);
7474
}
7575

76+
function parseBooleanAttr(value, defaultValue) {
77+
const result = $parse(value)($scope);
78+
return typeof result === 'boolean' ? result : defaultValue;
79+
}
80+
7681
const BUFFER_MIN = 3;
7782
const BUFFER_DEFAULT = 10;
7883
const PADDING_MIN = 0.3;
7984
const PADDING_DEFAULT = 0.5;
85+
const HANDLE_INERTIA_DEFAULT = true;
8086
const START_INDEX_DEFAULT = 1;
8187
const MAX_VIEWPORT_DELAY = 500;
8288
const VIEWPORT_POLLING_INTERVAL = 50;
@@ -87,6 +93,7 @@ angular.module('ui.scroll', [])
8793
const viewportController = controllers[0];
8894
const bufferSize = Math.max(BUFFER_MIN, parseNumericAttr($attr.bufferSize, BUFFER_DEFAULT));
8995
const padding = Math.max(PADDING_MIN, parseNumericAttr($attr.padding, PADDING_DEFAULT, true));
96+
const handleInertia = parseBooleanAttr($attr.handleInertia, HANDLE_INERTIA_DEFAULT);
9097
let startIndex = parseNumericAttr($attr.startIndex, START_INDEX_DEFAULT);
9198
let ridActual = 0; // current data revision id
9299
let pending = [];
@@ -501,7 +508,7 @@ angular.module('ui.scroll', [])
501508
}
502509

503510
function resizeAndScrollHandler() {
504-
if (fixInertia()) {
511+
if (handleInertia && fixInertia()) {
505512
return;
506513
}
507514
if (!$rootScope.$$phase && !adapter.isLoading && !adapter.disabled) {

test/misc/scaffolding.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,13 @@ function createHtml(settings) {
1212
var adapter = settings.adapter ? ' adapter="' + settings.adapter + '"' : '';
1313
var template = settings.template ? settings.template : '{{$index}}: {{item}}';
1414
var startIndex = settings.startIndex ? ' start-index="' + settings.startIndex + '"' : '';
15+
var inertia = ' handle-inertia="false"';
1516
var extra = settings.extra || '';
1617
return '<div ui-scroll-viewport' + viewportStyle + '>' +
1718
(settings.wrapper ? settings.wrapper.start : '') +
1819
'<div class="item" ui-scroll="item in ' + settings.datasource + '"' +
1920
adapter +
20-
itemStyle + bufferSize + padding + isLoading + topVisible + disabled + startIndex + extra + '>' +
21+
itemStyle + bufferSize + padding + isLoading + topVisible + disabled + startIndex + inertia + extra + '>' +
2122
template +
2223
'</div>' +
2324
(settings.wrapper ? settings.wrapper.end : '') +
@@ -35,6 +36,7 @@ function finalize(scroller, options, scope, $timeout) {
3536
}
3637

3738
function augmentScroller(scroller) {
39+
'use strict';
3840
var scrollTop = scroller.scrollTop;
3941
scroller.scrollTop = function () {
4042
var result = scrollTop.apply(scroller, arguments);

0 commit comments

Comments
 (0)