Skip to content

Commit 5f5ae97

Browse files
committed
call addCSSRules on the app start only
1 parent d9b3c83 commit 5f5ae97

File tree

2 files changed

+25
-34
lines changed

2 files changed

+25
-34
lines changed

src/modules/elementRoutines.js

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,29 @@
11
const hideClassToken = 'ng-ui-scroll-hide';
22

3-
function addCSSRule(sheet, rules, _index) {
4-
const selector = '.' + hideClassToken;
5-
let index;
6-
try {
7-
index = sheet.cssRules.length;
8-
index = _index < index && _index >= 0 ? _index : index;
9-
} catch (err) {
10-
index = 0;
11-
}
12-
if('insertRule' in sheet) {
13-
sheet.insertRule(selector + '{' + rules + '}', index);
14-
}
15-
else if('addRule' in sheet) {
16-
sheet.addRule(selector, rules, index);
17-
}
18-
}
19-
203
export default class ElementRoutines {
214

22-
constructor($injector, $q, uiScrollService) {
5+
static addCSSRules() {
6+
const selector = '.' + hideClassToken;
7+
const rules = 'display: none';
8+
const sheet = document.styleSheets[0];
9+
let index;
10+
try {
11+
index = sheet.cssRules.length;
12+
} catch (err) {
13+
index = 0;
14+
}
15+
if('insertRule' in sheet) {
16+
sheet.insertRule(selector + '{' + rules + '}', index);
17+
}
18+
else if('addRule' in sheet) {
19+
sheet.addRule(selector, rules, index);
20+
}
21+
}
22+
23+
constructor($injector, $q) {
2324
this.$animate = ($injector.has && $injector.has('$animate')) ? $injector.get('$animate') : null;
2425
this.isAngularVersionLessThen1_3 = angular.version.major === 1 && angular.version.minor < 3;
2526
this.$q = $q;
26-
if (uiScrollService.count() === 1) {
27-
addCSSRule(document.styleSheets[0], 'display: none');
28-
}
2927
}
3028

3129
hideElement(wrapper) {

src/ui-scroll.js

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,11 @@ import Adapter from './modules/adapter.js';
66

77
angular.module('ui.scroll', [])
88

9-
.service('uiScrollService', function () {
10-
let instances = 0;
11-
this.register = () => instances++;
12-
this.count = () => instances;
13-
})
149
.constant('JQLiteExtras', JQLiteExtras)
15-
.run(['JQLiteExtras', (JQLiteExtras) =>
16-
!window.jQuery ? (new JQLiteExtras()).registerFor(angular.element) : null
17-
])
10+
.run(['JQLiteExtras', (JQLiteExtras) => {
11+
!window.jQuery ? (new JQLiteExtras()).registerFor(angular.element) : null;
12+
ElementRoutines.addCSSRules();
13+
}])
1814

1915
.directive('uiScrollViewport', function () {
2016
return {
@@ -47,8 +43,7 @@ angular.module('ui.scroll', [])
4743
'$interval',
4844
'$q',
4945
'$parse',
50-
'uiScrollService',
51-
function (console, $injector, $rootScope, $timeout, $interval, $q, $parse, uiScrollService) {
46+
function (console, $injector, $rootScope, $timeout, $interval, $q, $parse) {
5247

5348
return {
5449
require: ['?^uiScrollViewport'],
@@ -65,8 +60,6 @@ angular.module('ui.scroll', [])
6560
throw new Error('Expected uiScroll in form of \'_item_ in _datasource_\' but got \'' + $attr.uiScroll + '\'');
6661
}
6762

68-
uiScrollService.register();
69-
7063
function parseNumericAttr(value, defaultValue) {
7164
const result = $parse(value)($scope);
7265
return isNaN(result) ? defaultValue : result;
@@ -89,7 +82,7 @@ angular.module('ui.scroll', [])
8982
let ridActual = 0; // current data revision id
9083
let pending = [];
9184

92-
const elementRoutines = new ElementRoutines($injector, $q, uiScrollService);
85+
const elementRoutines = new ElementRoutines($injector, $q);
9386
const buffer = new ScrollBuffer(elementRoutines, bufferSize, startIndex);
9487
const viewport = new Viewport(elementRoutines, buffer, element, viewportController, $rootScope, padding);
9588
const adapter = new Adapter($scope, $parse, $attr, viewport, buffer, doAdjust, reload);

0 commit comments

Comments
 (0)