jquery-radiantscroller-rails 0.0.2.1 → 0.0.3

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YTRhMDZhMjMzYzEzYzVlNjhiZTE4OTBmODQ1YWQzZGM0NzEwNDQyNw==
4
+ NzUyZWI4ODFhY2MwNDQyZGNkOTk4YTI5NTM4ZjU3YzYyMTQ3NGI5NA==
5
5
  data.tar.gz: !binary |-
6
- ZmQwNjY0NTA0MGQxOGQ2YzQzOTYzYzU3OTNmZDU5NGYzOWU4MzM2MQ==
6
+ Yzc5NmIxMzQ3YTZhNjcxYWZkYjYzZGMyMzQ4NzdmZTY0NDA2ZGQ5Mg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ODM2NWRkNGM3YjMwYzAwMmU1NDdiOGJmNmQ1OTUyOTBmNDhmMjhjM2I1YTNk
10
- MzI1MDMzZWZkNDdhZTJhMzYzYWNmODk5OWY3NDEzZjE3OTFhNDEwZGJiMGE2
11
- ODNlYzJlOTI5OGQxMmYxNDQ0MzdlNjlmOWRlODU0ODNkNTY1OGE=
9
+ MmJlOWMzMjU1ODQ5ZDkwNWE4Y2QwYTM5NWRjOGUxNDljNTdkZjJkM2RkOTI3
10
+ NjZlZDgzZjQyZjcxOTA2ODYzOTk2NjJiYTBmYWZkZWQzMGIxZWY0ZjNjZDVj
11
+ Yzc3Y2Q0MWI1NzU4NTAzMWFhY2M2MDVjNDIzMjc0NzM5ZmRkZWQ=
12
12
  data.tar.gz: !binary |-
13
- MmRkNjJhZjg2OTA3YmQ2Y2IyYzQ4MDQ3MzNkYTU2OWE2MDgzMmQyZDNmOWZh
14
- ZDRlNzNhZjEwZDViYmRlNjFhNTJkNjk4ZDA3YjY1MTA0M2Q2MTA4MGFlMWNi
15
- ZmNhODlmOWMxNDIxYTMzNzM2ZTBkMzdjZjJjYWRiZDI0MjZmOGU=
13
+ ZTE1NGZiY2QxNTkxNWE0NjRmZTUwNDk4NTM4ZDZiNGIxZDVhMDg0Yzk0NGE0
14
+ NjFiMzA1NDVmN2I1YWI4MjA5ODRlOWU1YWYyMDYxZWIzYTBlZjRlODQ1Mzg4
15
+ YTNhYWViM2M1MjI1YzMyYTlmZmZjZWI4ZmJjN2QwNDhiMzliM2I=
@@ -1,5 +1,5 @@
1
1
  module RadiantScroller
2
2
  module Rails
3
- VERSION = "0.0.2.1"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * jQuery RadiantScroller
3
- * Version: 0.0.2 (07/01/2014)
3
+ * Version: 0.0.3 (07/01/2014)
4
4
  * Copyright (c) 2013 Ilya Bodrov (http://www.radiant-wind.com/plugins/radiant_scroller)
5
5
  *
6
6
  * Requires: jQuery 1.7.0+
@@ -20,8 +20,7 @@
20
20
  var elements = scroller.find('.scroller-el'),
21
21
  el_count = elements.size(),
22
22
  el_width = scroller.vars.elementWidth + scroller.vars.elementMargin,
23
- per_row = Math.ceil(el_count / scroller.vars.rows),
24
- visible_els = 0;
23
+ per_row = Math.ceil(el_count / scroller.vars.rows);
25
24
 
26
25
  // Calculating scroller's width with regard to items per row
27
26
  scroller.width( (el_width * per_row) - scroller.vars.elementMargin );
@@ -46,110 +45,103 @@
46
45
 
47
46
  // Scroller methods
48
47
  scroller.calculateVisibleElements = function() {
49
- visible_els = Math.floor((wrapper.width() + scroller.vars.elementMargin) / el_width);
48
+ scroller.visible_els = Math.floor((wrapper.width() + scroller.vars.elementMargin) / el_width);
50
49
  };
51
50
 
52
- scroller.moveElements = function(direction, scrollBy, page_el) {
53
- if(!scroller.animating) {
54
- scroller.animating = true;
55
- var distance = 0;
56
- if (typeof scrollBy === 'undefined') {
57
- distance = visible_els * el_width;
58
- } else { distance = visible_els * el_width * scrollBy; }
59
-
60
- var fraction = 0;
61
- if (direction === 'left') { fraction = -distance ;
62
- } else { fraction = distance; }
63
-
64
- wrapper.animate(
65
- { scrollLeft: wrapper.scrollLeft() + fraction },
66
- scroller.vars.animateDuration, scroller.vars.easingType,
67
- function() { scroller.animating = false; }
68
- );
69
-
70
- if (scroller.vars.addPagination) {
71
- wrapper.current_page.removeClass('current-page');
72
- if (typeof page_el === 'undefined') {
73
- if (direction === 'right') {
74
- if (wrapper.current_page.next().size() > 0)
75
- wrapper.current_page = wrapper.current_page.next();
76
- }
77
- else {
78
- if (wrapper.current_page.prev().size() > 0)
79
- wrapper.current_page = wrapper.current_page.prev();
80
- }
81
- } else {
82
- wrapper.current_page = page_el;
83
- }
84
- wrapper.current_page.addClass('current-page');
51
+ scroller.moveElements = function(scrollBy) {
52
+ if (!scroller.animating) {
53
+ if (typeof scrollBy === 'undefined')
54
+ scrollBy = 1;
55
+
56
+ var new_current_page = scroller.current_page + scrollBy;
57
+ // The requested page should be between 0 and total number of pages and should not be the same page
58
+ // as the current, otherwise do nothing
59
+ if (new_current_page >= 0 && new_current_page < scroller.total_pages &&
60
+ new_current_page !== scroller.current_page) {
61
+ scroller.animating = true;
62
+
63
+ wrapper.animate(
64
+ { scrollLeft: wrapper.scrollLeft() + scroller.visible_els * el_width * scrollBy },
65
+ scroller.vars.animateDuration, scroller.vars.easingType,
66
+ function() { scroller.animating = false; }
67
+ );
68
+
69
+ scroller.current_page = new_current_page;
70
+
71
+ if (scroller.vars.addPagination)
72
+ scroller.assignActivePage(true);
85
73
  }
86
74
  }
87
75
  };
88
76
 
89
- scroller.createPagination = function() {
77
+ scroller.initializePagination = function() {
90
78
  // If there is the same number of visible elements we don't have to change anything
91
- if (typeof this.visible_els === 'undefined' || this.visible_els !== visible_els) {
92
- this.visible_els = visible_els;
93
- var pages = Math.ceil(per_row / visible_els);
94
- if (outer_wrapper.find('.radiant-pagination').size() > 0)
95
- outer_wrapper.find('.radiant-pagination').remove();
96
-
97
- var pagination = $('<div class="radiant-pagination" />').insertAfter(wrapper);
98
- for (var i = 0; i < pages; i++) {
99
- pagination.append('<div class="radiant-page" data-page="' + (i + 1) + '"></div>');
100
- }
79
+ if (typeof scroller.old_visible_els === 'undefined' || scroller.old_visible_els !== scroller.visible_els) {
80
+ scroller.old_visible_els = scroller.visible_els;
81
+ scroller.total_pages = Math.ceil(per_row / scroller.visible_els);
101
82
 
102
- if (typeof wrapper.current_page === 'undefined') {
83
+ if (typeof scroller.current_page === 'undefined') {
103
84
  // If current page was not set previously, we set it now
104
- wrapper.current_page = pagination.find('.radiant-page').first();
85
+ scroller.current_page = 0;
105
86
  } else {
106
- var new_current_page = Math.ceil(wrapper.scrollLeft() / (visible_els * el_width));
107
- wrapper.current_page = $(pagination.find('.radiant-page').get(new_current_page));
87
+ scroller.current_page = Math.ceil(wrapper.scrollLeft() / (scroller.visible_els * el_width));
108
88
  }
109
- wrapper.current_page.addClass('current-page');
89
+
90
+ if (scroller.vars.addPagination)
91
+ scroller.drawPagination();
92
+ }
93
+ };
94
+
95
+ scroller.drawPagination = function() {
96
+ if (outer_wrapper.find('.radiant-pagination').size() > 0)
97
+ outer_wrapper.find('.radiant-pagination').remove();
98
+
99
+ var pagination = $('<div class="radiant-pagination" />').insertAfter(wrapper);
100
+ for (var i = 0; i < scroller.total_pages; i++) {
101
+ pagination.append('<div class="radiant-page" data-page="' + i + '" />');
110
102
  }
103
+ scroller.assignActivePage();
104
+ };
105
+
106
+ scroller.assignActivePage = function(remove_old_active) {
107
+ if (remove_old_active === true)
108
+ outer_wrapper.find('.current-page').removeClass('current-page');
109
+ $(outer_wrapper.find('.radiant-page').get(scroller.current_page)).addClass('current-page');
111
110
  };
112
111
 
113
112
  // Binding events
114
113
  $(window).bindWithDelay('resize', function() {
115
114
  scroller.calculateVisibleElements();
116
- if (scroller.vars.addPagination) {
117
- scroller.createPagination();
118
- }
115
+ scroller.initializePagination();
119
116
  }, 500, true);
120
117
 
121
118
  nav.on('click', '.radiant-next', function() {
122
- scroller.moveElements('right', 1);
119
+ scroller.moveElements(1);
123
120
  });
124
121
 
125
122
  nav.on('click', '.radiant-prev', function() {
126
- scroller.moveElements('left', 1);
123
+ scroller.moveElements(-1);
127
124
  });
128
125
 
129
126
  if (scroller.vars.useMouseWheel) {
130
127
  wrapper.on('mousewheel', function(event) {
131
128
  event.preventDefault();
132
- if (event.deltaY > 0) { scroller.moveElements('right'); } else {
133
- scroller.moveElements('left'); }
129
+ scroller.moveElements(event.deltaY);
134
130
  });
135
131
  }
136
132
 
137
133
  outer_wrapper.on('click', '.radiant-page', function() {
138
- var $this = $(this);
139
- if (wrapper.current_page.get(0) !== $this.get(0)) {
140
- var current_page_number = wrapper.current_page.data('page');
141
- var this_page_number = $this.data('page');
142
- if (current_page_number > this_page_number) {
143
- scroller.moveElements('left', current_page_number - this_page_number, $this);
144
- } else { scroller.moveElements('right', this_page_number - current_page_number, $this); }
134
+ var this_page = $(this).data('page');
135
+ // If not clicking on the same page
136
+ if (scroller.current_page !== this_page) {
137
+ var current_page_number = scroller.current_page;
138
+ scroller.moveElements(this_page - current_page_number);
145
139
  }
146
140
  });
147
141
 
148
142
  // Init scroller
149
143
  scroller.calculateVisibleElements();
150
- if (scroller.vars.addPagination) {
151
- scroller.createPagination();
152
- }
144
+ scroller.initializePagination();
153
145
  };
154
146
 
155
147
  $.radiantScroller.defaults = {
@@ -165,7 +157,7 @@
165
157
  prevButtonText: ''
166
158
  };
167
159
 
168
- $.fn.radiantScroller = function(options) {
160
+ $.fn.radiantScroller = function(options, options2) {
169
161
  if (options === undefined) options = {};
170
162
 
171
163
  if (typeof options === "object") {
@@ -173,8 +165,14 @@
173
165
  } else {
174
166
  var $scroller = $(this).data('radiantscroller');
175
167
  switch (options) {
176
- case "next": $scroller.moveElements('right'); break;
177
- case "prev": $scroller.moveElements('left'); break;
168
+ case "next": $scroller.moveElements(1); break;
169
+ case "prev": $scroller.moveElements(-1); break;
170
+ // radiantScroller('by', 2) - scroll by 2 pages, not to the 2nd page
171
+ //TODO: check number
172
+ case "by": if (typeof options2 === "number") $scroller.moveElements(options2); break;
173
+ // Default behaviour: radiantScroller(3) means go to 3 page and page numeration starts from 1
174
+ // (whereas plugin has numeration starting from 0, so have to substract 1!!!)
175
+ default: if (typeof options === "number") $scroller.moveElements(options - 1 - $scroller.current_page);
178
176
  }
179
177
  }
180
178
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * jQuery RadiantScroller
3
- * Version: 0.0.2 (07/01/2014)
3
+ * Version: 0.0.3 (07/01/2014)
4
4
  * Copyright (c) 2013 Ilya Bodrov (http://www.radiant-wind.com/plugins/radiant_scroller)
5
5
  */
6
6
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jquery-radiantscroller-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2.1
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ilya Bodrov
@@ -58,7 +58,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
58
  version: '0'
59
59
  requirements: []
60
60
  rubyforge_project:
61
- rubygems_version: 2.2.0
61
+ rubygems_version: 2.2.1
62
62
  signing_key:
63
63
  specification_version: 4
64
64
  summary: Includes javascript and css files for the Radiant Scroller plugin.