jquery-mousewheel-rails 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6d3c4c24f02fc3490eb09fcd6e16b6845deb7465
4
- data.tar.gz: 1f12801a55323a678d450747b669a754e1b18b46
3
+ metadata.gz: 06772f314185b1cbd581918cd5f595bd2e34d377
4
+ data.tar.gz: 15a09792ecb91bd62a4853339be395c557408aaa
5
5
  SHA512:
6
- metadata.gz: 6ff6a0d8a9f26e69ade36eefa9314ef3ffa937fa3509059a68a02bb329eb8d0786197bfc1698b79536e0ebe9eaa37e3f0a2057895381941a536d7400b77c3f70
7
- data.tar.gz: c044f0e8e17d22cc6f1ab8c3d5429380a450f4e477af90a316469cfed4dc8ac5ba40906b0ed4ddaf3b09f6694b225afdfcadf0deb4016765e748602207226148
6
+ metadata.gz: ce4639fe93209555a8638f63d3241e36bc91fc7d2f4580e46c5e91db7b5ad3f670a7339ad61dc2033401a7700a647f69b70d946789df86e47da836da587ba4e6
7
+ data.tar.gz: 1684d55af7336c9a34e969e169249e4b858ef51a67bb730ae5df1e876950c81dce4818b2b055545ad8ccb0bc7d80563fea858bd07808a629524c4e84c2732602
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- jquery-mousewheel-rails (0.0.5)
4
+ jquery-mousewheel-rails (0.0.6)
5
5
  railties (>= 3.1)
6
6
 
7
7
  GEM
@@ -1,3 +1,3 @@
1
1
  module JqueryMousewheelRails
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
@@ -1,7 +1,7 @@
1
1
  /*! Copyright (c) 2013 Brandon Aaron (http://brandon.aaron.sh)
2
2
  * Licensed under the MIT License (LICENSE.txt).
3
3
  *
4
- * Version: 3.1.6
4
+ * Version: 3.1.8
5
5
  *
6
6
  * Requires: jQuery 1.2.2+
7
7
  */
@@ -21,9 +21,9 @@
21
21
 
22
22
  var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],
23
23
  toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ?
24
- ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],
24
+ ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],
25
25
  slice = Array.prototype.slice,
26
- nullLowestDeltaTimeout, lowestDelta;
26
+ oldMode, nullLowestDeltaTimeout, lowestDelta;
27
27
 
28
28
  if ( $.event.fixHooks ) {
29
29
  for ( var i = toFix.length; i; ) {
@@ -31,8 +31,8 @@
31
31
  }
32
32
  }
33
33
 
34
- $.event.special.mousewheel = {
35
- version: '3.1.6',
34
+ var special = $.event.special.mousewheel = {
35
+ version: '3.1.8',
36
36
 
37
37
  setup: function() {
38
38
  if ( this.addEventListener ) {
@@ -42,6 +42,9 @@
42
42
  } else {
43
43
  this.onmousewheel = handler;
44
44
  }
45
+ // Store the line height and page height for this particular element
46
+ $.data(this, 'mousewheel-line-height', special.getLineHeight(this));
47
+ $.data(this, 'mousewheel-page-height', special.getPageHeight(this));
45
48
  },
46
49
 
47
50
  teardown: function() {
@@ -52,6 +55,14 @@
52
55
  } else {
53
56
  this.onmousewheel = null;
54
57
  }
58
+ },
59
+
60
+ getLineHeight: function(elem) {
61
+ return parseInt($(elem)['offsetParent' in $.fn ? 'offsetParent' : 'parent']().css('fontSize'), 10);
62
+ },
63
+
64
+ getPageHeight: function(elem) {
65
+ return $(elem).height();
55
66
  }
56
67
  };
57
68
 
@@ -104,10 +115,45 @@
104
115
  // No change actually happened, no reason to go any further
105
116
  if ( deltaY === 0 && deltaX === 0 ) { return; }
106
117
 
118
+ // Need to convert lines and pages to pixels if we aren't already in pixels
119
+ // There are three delta modes:
120
+ // * deltaMode 0 is by pixels, nothing to do
121
+ // * deltaMode 1 is by lines
122
+ // * deltaMode 2 is by pages
123
+ if ( orgEvent.deltaMode === 1 ) {
124
+ var lineHeight = $.data(this, 'mousewheel-line-height');
125
+ delta *= lineHeight;
126
+ deltaY *= lineHeight;
127
+ deltaX *= lineHeight;
128
+ } else if ( orgEvent.deltaMode === 2 ) {
129
+ var pageHeight = $.data(this, 'mousewheel-page-height');
130
+ delta *= pageHeight;
131
+ deltaY *= pageHeight;
132
+ deltaX *= pageHeight;
133
+ }
134
+
107
135
  // Store lowest absolute delta to normalize the delta values
108
136
  absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) );
137
+
109
138
  if ( !lowestDelta || absDelta < lowestDelta ) {
110
139
  lowestDelta = absDelta;
140
+
141
+ // Assuming that if the lowestDelta is 120, then that the browser
142
+ // is treating this as an older mouse wheel event.
143
+ // We'll divide it by 40 to try and get a more usable deltaFactor.
144
+ if ( lowestDelta === 120 ) {
145
+ oldMode = true;
146
+ lowestDelta /= 40;
147
+ }
148
+ }
149
+
150
+ // When in oldMode the delta is based on 120.
151
+ // Dividing by 40 to try and get a more usable deltaFactor.
152
+ if ( oldMode ) {
153
+ // Divide all the things by 40!
154
+ delta /= 40;
155
+ deltaX /= 40;
156
+ deltaY /= 40;
111
157
  }
112
158
 
113
159
  // Get a whole, normalized value for the deltas
@@ -119,6 +165,10 @@
119
165
  event.deltaX = deltaX;
120
166
  event.deltaY = deltaY;
121
167
  event.deltaFactor = lowestDelta;
168
+ // Go ahead and set deltaMode to 0 since we converted to pixels
169
+ // Although this is a little odd since we overwrite the deltaX/Y
170
+ // properties with normalized deltas.
171
+ event.deltaMode = 0;
122
172
 
123
173
  // Add event and delta to the front of the arguments
124
174
  args.unshift(event, delta, deltaX, deltaY);
@@ -135,6 +185,7 @@
135
185
 
136
186
  function nullLowestDelta() {
137
187
  lowestDelta = null;
188
+ oldMode = null;
138
189
  }
139
190
 
140
191
  }));
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jquery-mousewheel-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike MacDonald
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-19 00:00:00.000000000 Z
11
+ date: 2013-12-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -109,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
109
  version: '0'
110
110
  requirements: []
111
111
  rubyforge_project:
112
- rubygems_version: 2.0.3
112
+ rubygems_version: 2.0.14
113
113
  signing_key:
114
114
  specification_version: 4
115
115
  summary: Integrates jquery-mousewheel with rails.