skrollr-rails 0.6.11 → 0.6.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fb34fa2e1b2ca62c6b68054373f28854ff545c52
4
- data.tar.gz: c1e98ffdddcc45515a4a43028969fc5ac80a2145
3
+ metadata.gz: bd1110115e2221306a0b9ca1328d3f4b9cd479fe
4
+ data.tar.gz: d8f4e8937b43441aa2a794b08b8f31d9c63a0429
5
5
  SHA512:
6
- metadata.gz: 2d8be55cb4575df26d8ed5daca3de45dff80818e10a2a8bb76ada7f99ee29923fe4d7cfe7faeecdfd2d2703c15bb28fea688b8b7101752be49bf6f4fa9c065d4
7
- data.tar.gz: 926a2e74c7b6418b48740d954fc10f64a5c6dc3eccbe10093b18ad6feacd832f6765d74eb5136d68bdcd57182661954de45ab35fa71b0840eb0fa9244eaf5cde
6
+ metadata.gz: 261db4165ac4cfe9ad793a03b56facc944e807c77e0c8de3468af1a6d8666911a3caf2e4061a8dce6cb84d2cc058481141c25c7d30a61eb3eb393a8e2bbda5d5
7
+ data.tar.gz: acc368b3991fa3ba7d05df1637eb028742e47c8c2b1a215683e9cd5382fbafe5ec200284158957dd94b7b553b7fce2366bbb6f02d2015516d8706312a65a4362
@@ -1,5 +1,5 @@
1
1
  module Skrollr
2
2
  module Rails
3
- VERSION = "0.6.11"
3
+ VERSION = "0.6.12"
4
4
  end
5
5
  end
@@ -9,7 +9,8 @@ Gem::Specification.new do |s|
9
9
  s.description = %q{Integrates the skrollr javascript library with the Rails asset pipeline}
10
10
  s.summary = %q{Skrollr is a stand-alone parallax scrolling library for mobile and desktop. This gem integrates skrollr with the Rails asset pipeline for ease of use and version control.}
11
11
  s.homepage = 'https://github.com/reed/skrollr-rails'
12
-
12
+ s.license = 'MIT'
13
+
13
14
  s.files = `git ls-files`.split("\n")
14
15
  s.require_paths = ['lib']
15
16
 
@@ -19,7 +19,7 @@
19
19
  init: function(options) {
20
20
  return _instance || new Skrollr(options);
21
21
  },
22
- VERSION: '0.6.11'
22
+ VERSION: '0.6.12'
23
23
  };
24
24
 
25
25
  //Minify optimization.
@@ -149,7 +149,7 @@
149
149
  var deltaTime = _now() - lastTime;
150
150
  var delay = Math.max(0, 1000 / 60 - deltaTime);
151
151
 
152
- window.setTimeout(function() {
152
+ return window.setTimeout(function() {
153
153
  lastTime = _now();
154
154
  callback();
155
155
  }, delay);
@@ -159,6 +159,18 @@
159
159
  return requestAnimFrame;
160
160
  };
161
161
 
162
+ var polyfillCAF = function() {
163
+ var cancelAnimFrame = window.cancelAnimationFrame || window[theCSSPrefix.toLowerCase() + 'CancelAnimationFrame'];
164
+
165
+ if(_isMobile || !cancelAnimFrame) {
166
+ cancelAnimFrame = function(timeout) {
167
+ return window.clearTimeout(timeout);
168
+ };
169
+ }
170
+
171
+ return cancelAnimFrame;
172
+ };
173
+
162
174
  //Built-in easing functions.
163
175
  var easings = {
164
176
  begin: function() {
@@ -294,7 +306,7 @@
294
306
  //Let's go.
295
307
  (function animloop(){
296
308
  _render();
297
- requestAnimFrame(animloop);
309
+ _animFrame = requestAnimFrame(animloop);
298
310
  }());
299
311
 
300
312
  return _instance;
@@ -595,6 +607,52 @@
595
607
  return _instance;
596
608
  };
597
609
 
610
+ Skrollr.prototype.destroy = function() {
611
+ var cancelAnimFrame = polyfillCAF();
612
+ cancelAnimFrame(_animFrame);
613
+ _removeAllEvents();
614
+
615
+ _updateClass(documentElement, [NO_SKROLLR_CLASS], [SKROLLR_CLASS, SKROLLR_DESKTOP_CLASS, SKROLLR_MOBILE_CLASS]);
616
+
617
+ var skrollableIndex = 0;
618
+ var skrollablesLength = _skrollables.length;
619
+
620
+ for(; skrollableIndex < skrollablesLength; skrollableIndex++) {
621
+ _reset(_skrollables[skrollableIndex].element);
622
+ }
623
+
624
+ documentElement.style.overflow = body.style.overflow = 'auto';
625
+ documentElement.style.height = body.style.height = 'auto';
626
+
627
+ if(_skrollrBody) {
628
+ skrollr.setStyle(_skrollrBody, 'transform', 'none');
629
+ }
630
+
631
+ _instance = undefined;
632
+ _skrollrBody = undefined;
633
+ _listeners = undefined;
634
+ _forceHeight = undefined;
635
+ _maxKeyFrame = 0;
636
+ _scale = 1;
637
+ _constants = undefined;
638
+ _mobileDeceleration = undefined;
639
+ _direction = 'down';
640
+ _lastTop = -1;
641
+ _lastViewportWidth = 0;
642
+ _lastViewportHeight = 0;
643
+ _requestReflow = false;
644
+ _scrollAnimation = undefined;
645
+ _smoothScrollingEnabled = undefined;
646
+ _smoothScrollingDuration = undefined;
647
+ _smoothScrolling = undefined;
648
+ _forceRender = undefined;
649
+ _skrollableIdCounter = 0;
650
+ _edgeStrategy = undefined;
651
+ _isMobile = false;
652
+ _mobileOffset = 0;
653
+ _translateZ = undefined;
654
+ };
655
+
598
656
  /*
599
657
  Private methods.
600
658
  */
@@ -1261,18 +1319,57 @@
1261
1319
 
1262
1320
  names = names.split(' ');
1263
1321
 
1322
+ var name;
1264
1323
  var nameCounter = 0;
1265
1324
  var namesLength = names.length;
1266
1325
 
1267
1326
  for(; nameCounter < namesLength; nameCounter++) {
1327
+ name = names[nameCounter];
1328
+
1268
1329
  if(element.addEventListener) {
1269
- element.addEventListener(names[nameCounter], callback, false);
1330
+ element.addEventListener(name, callback, false);
1270
1331
  } else {
1271
- element.attachEvent('on' + names[nameCounter], intermediate);
1332
+ element.attachEvent('on' + name, intermediate);
1272
1333
  }
1334
+
1335
+ //Remember the events to be able to flush them later.
1336
+ _registeredEvents.push({
1337
+ element: element,
1338
+ name: name,
1339
+ listener: callback
1340
+ });
1273
1341
  }
1274
1342
  };
1275
1343
 
1344
+ var _removeEvent = skrollr.removeEvent = function(element, names, callback) {
1345
+ names = names.split(' ');
1346
+
1347
+ var nameCounter = 0;
1348
+ var namesLength = names.length;
1349
+
1350
+ for(; nameCounter < namesLength; nameCounter++) {
1351
+ if(element.removeEventListener) {
1352
+ element.removeEventListener(names[nameCounter], callback, false);
1353
+ } else {
1354
+ element.detachEvent('on' + names[nameCounter], callback);
1355
+ }
1356
+ }
1357
+ };
1358
+
1359
+ var _removeAllEvents = function() {
1360
+ var eventData;
1361
+ var eventCounter = 0;
1362
+ var eventsLength = _registeredEvents.length;
1363
+
1364
+ for(; eventCounter < eventsLength; eventCounter++) {
1365
+ eventData = _registeredEvents[eventCounter];
1366
+
1367
+ _removeEvent(eventData.element, eventData.name, eventData.listener);
1368
+ }
1369
+
1370
+ _registeredEvents = [];
1371
+ };
1372
+
1276
1373
  var _reflow = function() {
1277
1374
  var pos = _instance.getScrollTop();
1278
1375
 
@@ -1490,4 +1587,10 @@
1490
1587
 
1491
1588
  //If the browser supports 3d transforms, this will be filled with 'translateZ(0)' (empty string otherwise).
1492
1589
  var _translateZ;
1493
- }(window, document));
1590
+
1591
+ //Will contain data about registered events by skrollr.
1592
+ var _registeredEvents = [];
1593
+
1594
+ //Animation frame id returned by RequestAnimationFrame (or timeout when RAF is not supported).
1595
+ var _animFrame;
1596
+ }(window, document));
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: skrollr-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.11
4
+ version: 0.6.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Reed
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-22 00:00:00.000000000 Z
11
+ date: 2013-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -44,7 +44,8 @@ files:
44
44
  - vendor/assets/javascripts/skrollr.js
45
45
  - vendor/assets/javascripts/skrollr.menu.js
46
46
  homepage: https://github.com/reed/skrollr-rails
47
- licenses: []
47
+ licenses:
48
+ - MIT
48
49
  metadata: {}
49
50
  post_install_message:
50
51
  rdoc_options: []