|
1 | 1 | /* ===========================================================
|
2 |
| - * jquery-onepage-scroll.js v1.1.1 |
| 2 | + * jquery-onepage-scroll.js v1.2 |
3 | 3 | * ===========================================================
|
4 | 4 | * Copyright 2013 Pete Rojwongsuriya.
|
5 | 5 | * http://www.thepetedesign.com
|
|
25 | 25 | keyboard: true,
|
26 | 26 | beforeMove: null,
|
27 | 27 | afterMove: null,
|
28 |
| - loop: false |
| 28 | + loop: false, |
| 29 | + responsiveFallback: false |
29 | 30 | };
|
30 | 31 |
|
31 | 32 | /*------------------------------------------------*/
|
|
48 | 49 | startY = touches[0].pageY;
|
49 | 50 | $this.bind('touchmove', touchmove);
|
50 | 51 | }
|
51 |
| - event.preventDefault(); |
52 | 52 | }
|
53 | 53 |
|
54 | 54 | function touchmove(event) {
|
|
73 | 73 | $this.unbind('touchmove', touchmove);
|
74 | 74 | }
|
75 | 75 | }
|
76 |
| - event.preventDefault(); |
77 | 76 | }
|
78 | 77 |
|
79 | 78 | });
|
|
175 | 174 | el.transformPage(settings, pos, index);
|
176 | 175 | }
|
177 | 176 |
|
| 177 | + $.fn.moveTo = function(page_index) { |
| 178 | + current = $(settings.sectionContainer + ".active") |
| 179 | + next = $(settings.sectionContainer + "[data-index='" + (page_index) + "']"); |
| 180 | + if(next.length > 0) { |
| 181 | + current.removeClass("active") |
| 182 | + next.addClass("active") |
| 183 | + $(".onepage-pagination li a" + ".active").removeClass("active"); |
| 184 | + $(".onepage-pagination li a" + "[data-index='" + (page_index) + "']").addClass("active"); |
| 185 | + $("body")[0].className = $("body")[0].className.replace(/\bviewing-page-\d.*?\b/g, ''); |
| 186 | + $("body").addClass("viewing-page-"+next.data("index")) |
| 187 | + |
| 188 | + pos = ((page_index - 1) * 100) * -1; |
| 189 | + el.transformPage(settings, pos, page_index); |
| 190 | + if (settings.updateURL == false) return false; |
| 191 | + } |
| 192 | + } |
| 193 | + |
| 194 | + function responsive() { |
| 195 | + if ($(window).width() < settings.responsiveFallback) { |
| 196 | + $("body").addClass("disabled-onepage-scroll"); |
| 197 | + $(document).unbind('mousewheel DOMMouseScroll'); |
| 198 | + el.swipeEvents().unbind("swipeDown swipeUp"); |
| 199 | + } else { |
| 200 | + if($("body").hasClass("disabled-onepage-scroll")) { |
| 201 | + $("body").removeClass("disabled-onepage-scroll"); |
| 202 | + $("html, body, .wrapper").animate({ scrollTop: 0 }, "fast"); |
| 203 | + } |
| 204 | + |
| 205 | + |
| 206 | + el.swipeEvents().bind("swipeDown", function(event){ |
| 207 | + if (!$("body").hasClass("disabled-onepage-scroll")) event.preventDefault(); |
| 208 | + el.moveUp(); |
| 209 | + }).bind("swipeUp", function(event){ |
| 210 | + if (!$("body").hasClass("disabled-onepage-scroll")) event.preventDefault(); |
| 211 | + el.moveDown(); |
| 212 | + }); |
| 213 | + |
| 214 | + $(document).bind('mousewheel DOMMouseScroll', function(event) { |
| 215 | + event.preventDefault(); |
| 216 | + var delta = event.originalEvent.wheelDelta || -event.originalEvent.detail; |
| 217 | + init_scroll(event, delta); |
| 218 | + }); |
| 219 | + } |
| 220 | + } |
| 221 | + |
| 222 | + |
178 | 223 | function init_scroll(event, delta) {
|
179 | 224 | deltaOfInterest = delta;
|
180 | 225 | var timeNow = new Date().getTime();
|
|
206 | 251 | }
|
207 | 252 | });
|
208 | 253 |
|
209 |
| - el.swipeEvents().bind("swipeDown", function(){ |
| 254 | + el.swipeEvents().bind("swipeDown", function(event){ |
| 255 | + if (!$("body").hasClass("disabled-onepage-scroll")) event.preventDefault(); |
210 | 256 | el.moveUp();
|
211 |
| - }).bind("swipeUp", function(){ |
| 257 | + }).bind("swipeUp", function(event){ |
| 258 | + if (!$("body").hasClass("disabled-onepage-scroll")) event.preventDefault(); |
212 | 259 | el.moveDown();
|
213 | 260 | });
|
214 | 261 |
|
|
266 | 313 | }
|
267 | 314 |
|
268 | 315 |
|
269 |
| - |
270 | 316 | $(document).bind('mousewheel DOMMouseScroll', function(event) {
|
271 | 317 | event.preventDefault();
|
272 | 318 | var delta = event.originalEvent.wheelDelta || -event.originalEvent.detail;
|
273 |
| - init_scroll(event, delta); |
| 319 | + if(!$("body").hasClass("disabled-onepage-scroll")) init_scroll(event, delta); |
274 | 320 | });
|
275 | 321 |
|
| 322 | + |
| 323 | + if(settings.responsiveFallback != false) { |
| 324 | + $(window).resize(function() { |
| 325 | + responsive(); |
| 326 | + }); |
| 327 | + |
| 328 | + responsive(); |
| 329 | + } |
| 330 | + |
276 | 331 | if(settings.keyboard == true) {
|
277 | 332 | $(document).keydown(function(e) {
|
278 | 333 | var tag = e.target.tagName.toLowerCase();
|
279 |
| - switch(e.which) { |
280 |
| - case 38: |
281 |
| - if (tag != 'input' && tag != 'textarea') el.moveUp() |
282 |
| - break; |
283 |
| - case 40: |
284 |
| - if (tag != 'input' && tag != 'textarea') el.moveDown() |
285 |
| - break; |
286 |
| - default: return; |
| 334 | + |
| 335 | + if (!$("body").hasClass("disabled-onepage-scroll")) { |
| 336 | + switch(e.which) { |
| 337 | + case 38: |
| 338 | + if (tag != 'input' && tag != 'textarea') el.moveUp() |
| 339 | + break; |
| 340 | + case 40: |
| 341 | + if (tag != 'input' && tag != 'textarea') el.moveDown() |
| 342 | + break; |
| 343 | + default: return; |
| 344 | + } |
287 | 345 | }
|
| 346 | + |
288 | 347 | e.preventDefault();
|
289 | 348 | });
|
290 | 349 | }
|
291 | 350 | return false;
|
292 |
| - |
293 | 351 | }
|
294 | 352 |
|
| 353 | + |
295 | 354 | }(window.jQuery);
|
296 | 355 |
|
0 commit comments