diff --git a/Demo/jquery.onepage-scroll.js b/Demo/jquery.onepage-scroll.js index 133a8a7..e18d40a 100644 --- a/Demo/jquery.onepage-scroll.js +++ b/Demo/jquery.onepage-scroll.js @@ -1,5 +1,5 @@ /* =========================================================== - * jquery-onepage-scroll.js v1.3 + * jquery-onepage-scroll.js v1.3.1 * =========================================================== * Copyright 2013 Pete Rojwongsuriya. * http://www.thepetedesign.com @@ -28,13 +28,13 @@ loop: true, responsiveFallback: false, direction : 'vertical' - }; + }; - /*------------------------------------------------*/ - /* Credit: Eike Send for the awesome swipe event */ - /*------------------------------------------------*/ + /*------------------------------------------------*/ + /* Credit: Eike Send for the awesome swipe event */ + /*------------------------------------------------*/ - $.fn.swipeEvents = function() { + $.fn.swipeEvents = function() { return this.each(function() { var startX, @@ -94,16 +94,29 @@ $.fn.transformPage = function(settings, pos, index) { if (typeof settings.beforeMove == 'function') settings.beforeMove(index); - $(this).css({ - "-webkit-transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)", - "-webkit-transition": "all " + settings.animationTime + "ms " + settings.easing, - "-moz-transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)", - "-moz-transition": "all " + settings.animationTime + "ms " + settings.easing, - "-ms-transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)", - "-ms-transition": "all " + settings.animationTime + "ms " + settings.easing, - "transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)", - "transition": "all " + settings.animationTime + "ms " + settings.easing - }); + + // Just a simple edit that makes use of modernizr to detect an IE8 browser and changes the transform method into + // an top animate so IE8 users can also use this script. + if($('html').hasClass('ie8')){ + if (settings.direction == 'horizontal') { + var toppos = (el.width()/100)*pos; + $(this).animate({left: toppos+'px'},settings.animationTime); + } else { + var toppos = (el.height()/100)*pos; + $(this).animate({top: toppos+'px'},settings.animationTime); + } + } else{ + $(this).css({ + "-webkit-transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)", + "-webkit-transition": "all " + settings.animationTime + "ms " + settings.easing, + "-moz-transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)", + "-moz-transition": "all " + settings.animationTime + "ms " + settings.easing, + "-ms-transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)", + "-ms-transition": "all " + settings.animationTime + "ms " + settings.easing, + "transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)", + "transition": "all " + settings.animationTime + "ms " + settings.easing + }); + } $(this).one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) { if (typeof settings.afterMove == 'function') settings.afterMove(index); }); @@ -203,23 +216,23 @@ //start modification var valForTest = false; var typeOfRF = typeof settings.responsiveFallback - + if(typeOfRF == "number"){ - valForTest = $(window).width() < settings.responsiveFallback; + valForTest = $(window).width() < settings.responsiveFallback; } if(typeOfRF == "boolean"){ - valForTest = settings.responsiveFallback; + valForTest = settings.responsiveFallback; } if(typeOfRF == "function"){ - valFunction = settings.responsiveFallback(); - valForTest = valFunction; - typeOFv = typeof valForTest; - if(typeOFv == "number"){ - valForTest = $(window).width() < valFunction; - } + valFunction = settings.responsiveFallback(); + valForTest = valFunction; + typeOFv = typeof valForTest; + if(typeOFv == "number"){ + valForTest = $(window).width() < valFunction; + } } - - //end modification + + //end modification if (valForTest) { $("body").addClass("disabled-onepage-scroll"); $(document).unbind('mousewheel DOMMouseScroll MozMousePixelScroll'); @@ -273,8 +286,8 @@ position: "absolute", top: topPos + "%" }).addClass("section").attr("data-index", i+1); - - + + $(this).css({ position: "absolute", left: ( settings.direction == 'horizontal' ) @@ -284,13 +297,13 @@ ? topPos + "%" : 0 }); - + if (settings.direction == 'horizontal') leftPos = leftPos + 100; else topPos = topPos + 100; - - + + if(settings.pagination == true) { paginationList += "
  • " } @@ -307,7 +320,7 @@ // Create Pagination and Display Them if (settings.pagination == true) { if ($('ul.onepage-pagination').length < 1) $("").prependTo("body"); - + if( settings.direction == 'horizontal' ) { posLeft = (el.find(".onepage-pagination").width() / 2) * -1; el.find(".onepage-pagination").css("margin-left", posLeft); @@ -320,7 +333,7 @@ if(window.location.hash != "" && window.location.hash != "#1") { init_index = window.location.hash.replace("#", "") - + if (parseInt(init_index) <= total && parseInt(init_index) > 0) { $(settings.sectionContainer + "[data-index='" + init_index + "']").addClass("active") $("body").addClass("viewing-page-"+ init_index) @@ -349,7 +362,7 @@ $("body").addClass("viewing-page-1") if(settings.pagination == true) $(".onepage-pagination li a" + "[data-index='1']").addClass("active"); } - + if(settings.pagination == true) { $(".onepage-pagination li a").click(function (){ var page_index = $(this).data("index"); @@ -385,6 +398,9 @@ case 40: if (tag != 'input' && tag != 'textarea') el.moveDown() break; + case 32: //spacebar + if (tag != 'input' && tag != 'textarea') el.moveDown() + break; case 33: //pageg up if (tag != 'input' && tag != 'textarea') el.moveUp() break; @@ -408,4 +424,3 @@ }(window.jQuery); - diff --git a/bower.json b/bower.json index a7174f2..595e4e5 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "onepage-scroll", - "version": "1.2.2", + "version": "1.3.1", "author": "Pete R", "main": [ "jquery.onepage-scroll.js", diff --git a/jquery.onepage-scroll.js b/jquery.onepage-scroll.js index 133a8a7..71c75ba 100644 --- a/jquery.onepage-scroll.js +++ b/jquery.onepage-scroll.js @@ -1,5 +1,5 @@ /* =========================================================== - * jquery-onepage-scroll.js v1.3 + * jquery-onepage-scroll.js v1.3.1 * =========================================================== * Copyright 2013 Pete Rojwongsuriya. * http://www.thepetedesign.com @@ -94,16 +94,29 @@ $.fn.transformPage = function(settings, pos, index) { if (typeof settings.beforeMove == 'function') settings.beforeMove(index); - $(this).css({ - "-webkit-transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)", - "-webkit-transition": "all " + settings.animationTime + "ms " + settings.easing, - "-moz-transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)", - "-moz-transition": "all " + settings.animationTime + "ms " + settings.easing, - "-ms-transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)", - "-ms-transition": "all " + settings.animationTime + "ms " + settings.easing, - "transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)", - "transition": "all " + settings.animationTime + "ms " + settings.easing - }); + + // Just a simple edit that makes use of modernizr to detect an IE8 browser and changes the transform method into + // an top animate so IE8 users can also use this script. + if($('html').hasClass('ie8')){ + if (settings.direction == 'horizontal') { + var toppos = (el.width()/100)*pos; + $(this).animate({left: toppos+'px'},settings.animationTime); + } else { + var toppos = (el.height()/100)*pos; + $(this).animate({top: toppos+'px'},settings.animationTime); + } + } else{ + $(this).css({ + "-webkit-transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)", + "-webkit-transition": "all " + settings.animationTime + "ms " + settings.easing, + "-moz-transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)", + "-moz-transition": "all " + settings.animationTime + "ms " + settings.easing, + "-ms-transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)", + "-ms-transition": "all " + settings.animationTime + "ms " + settings.easing, + "transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)", + "transition": "all " + settings.animationTime + "ms " + settings.easing + }); + } $(this).one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) { if (typeof settings.afterMove == 'function') settings.afterMove(index); }); @@ -203,7 +216,7 @@ //start modification var valForTest = false; var typeOfRF = typeof settings.responsiveFallback - + if(typeOfRF == "number"){ valForTest = $(window).width() < settings.responsiveFallback; } @@ -218,8 +231,8 @@ valForTest = $(window).width() < valFunction; } } - - //end modification + + //end modification if (valForTest) { $("body").addClass("disabled-onepage-scroll"); $(document).unbind('mousewheel DOMMouseScroll MozMousePixelScroll'); @@ -273,8 +286,8 @@ position: "absolute", top: topPos + "%" }).addClass("section").attr("data-index", i+1); - - + + $(this).css({ position: "absolute", left: ( settings.direction == 'horizontal' ) @@ -284,13 +297,13 @@ ? topPos + "%" : 0 }); - + if (settings.direction == 'horizontal') leftPos = leftPos + 100; else topPos = topPos + 100; - - + + if(settings.pagination == true) { paginationList += "
  • " } @@ -307,7 +320,7 @@ // Create Pagination and Display Them if (settings.pagination == true) { if ($('ul.onepage-pagination').length < 1) $("").prependTo("body"); - + if( settings.direction == 'horizontal' ) { posLeft = (el.find(".onepage-pagination").width() / 2) * -1; el.find(".onepage-pagination").css("margin-left", posLeft); @@ -320,7 +333,7 @@ if(window.location.hash != "" && window.location.hash != "#1") { init_index = window.location.hash.replace("#", "") - + if (parseInt(init_index) <= total && parseInt(init_index) > 0) { $(settings.sectionContainer + "[data-index='" + init_index + "']").addClass("active") $("body").addClass("viewing-page-"+ init_index) @@ -349,7 +362,7 @@ $("body").addClass("viewing-page-1") if(settings.pagination == true) $(".onepage-pagination li a" + "[data-index='1']").addClass("active"); } - + if(settings.pagination == true) { $(".onepage-pagination li a").click(function (){ var page_index = $(this).data("index"); @@ -385,6 +398,9 @@ case 40: if (tag != 'input' && tag != 'textarea') el.moveDown() break; + case 32: //spacebar + if (tag != 'input' && tag != 'textarea') el.moveDown() + break; case 33: //pageg up if (tag != 'input' && tag != 'textarea') el.moveUp() break; @@ -408,4 +424,3 @@ }(window.jQuery); - diff --git a/jquery.onepage-scroll.min.js b/jquery.onepage-scroll.min.js index 9411c31..eac8787 100644 --- a/jquery.onepage-scroll.min.js +++ b/jquery.onepage-scroll.min.js @@ -1 +1 @@ -!function(e){var t={sectionContainer:"section",easing:"ease",animationTime:1e3,pagination:true,updateURL:false,keyboard:true,beforeMove:null,afterMove:null,loop:true,responsiveFallback:false,direction:"vertical"};e.fn.swipeEvents=function(){return this.each(function(){function i(e){var i=e.originalEvent.touches;if(i&&i.length){t=i[0].pageX;n=i[0].pageY;r.bind("touchmove",s)}}function s(e){var i=e.originalEvent.touches;if(i&&i.length){var o=t-i[0].pageX;var u=n-i[0].pageY;if(o>=50){r.trigger("swipeLeft")}if(o<=-50){r.trigger("swipeRight")}if(u>=50){r.trigger("swipeUp")}if(u<=-50){r.trigger("swipeDown")}if(Math.abs(o)>=50||Math.abs(u)>=50){r.unbind("touchmove",s)}}}var t,n,r=e(this);r.bind("touchstart",i)})};e.fn.onepage_scroll=function(n){function o(){var t=false;var n=typeof r.responsiveFallback;if(n=="number"){t=e(window).width()0){if(typeof r.beforeMove=="function")r.beforeMove(next.data("index"));current.removeClass("active");next.addClass("active");e(".onepage-pagination li a"+".active").removeClass("active");e(".onepage-pagination li a"+"[data-index='"+t+"']").addClass("active");e("body")[0].className=e("body")[0].className.replace(/\bviewing-page-\d.*?\b/g,"");e("body").addClass("viewing-page-"+next.data("index"));pos=(t-1)*100*-1;if(history.replaceState&&r.updateURL==true){var n=window.location.href.substr(0,window.location.href.indexOf("#"))+"#"+(t-1);history.pushState({},document.title,n)}i.transformPage(r,pos,t)}};i.addClass("onepage-wrapper").css("position","relative");e.each(s,function(t){e(this).css({position:"absolute",top:topPos+"%"}).addClass("section").attr("data-index",t+1);e(this).css({position:"absolute",left:r.direction=="horizontal"?leftPos+"%":0,top:r.direction=="vertical"||r.direction!="horizontal"?topPos+"%":0});if(r.direction=="horizontal")leftPos=leftPos+100;else topPos=topPos+100;if(r.pagination==true){paginationList+="
  • "}});i.swipeEvents().bind("swipeDown",function(t){if(!e("body").hasClass("disabled-onepage-scroll"))t.preventDefault();i.moveUp()}).bind("swipeUp",function(t){if(!e("body").hasClass("disabled-onepage-scroll"))t.preventDefault();i.moveDown()});if(r.pagination==true){if(e("ul.onepage-pagination").length<1)e("").prependTo("body");if(r.direction=="horizontal"){posLeft=i.find(".onepage-pagination").width()/2*-1;i.find(".onepage-pagination").css("margin-left",posLeft)}else{posTop=i.find(".onepage-pagination").height()/2*-1;i.find(".onepage-pagination").css("margin-top",posTop)}e("ul.onepage-pagination").html(paginationList)}if(window.location.hash!=""&&window.location.hash!="#1"){init_index=window.location.hash.replace("#","");if(parseInt(init_index)<=total&&parseInt(init_index)>0){e(r.sectionContainer+"[data-index='"+init_index+"']").addClass("active");e("body").addClass("viewing-page-"+init_index);if(r.pagination==true)e(".onepage-pagination li a"+"[data-index='"+init_index+"']").addClass("active");next=e(r.sectionContainer+"[data-index='"+init_index+"']");if(next){next.addClass("active");if(r.pagination==true)e(".onepage-pagination li a"+"[data-index='"+init_index+"']").addClass("active");e("body")[0].className=e("body")[0].className.replace(/\bviewing-page-\d.*?\b/g,"");e("body").addClass("viewing-page-"+next.data("index"));if(history.replaceState&&r.updateURL==true){var a=window.location.href.substr(0,window.location.href.indexOf("#"))+"#"+init_index;history.pushState({},document.title,a)}}pos=(init_index-1)*100*-1;i.transformPage(r,pos,init_index)}else{e(r.sectionContainer+"[data-index='1']").addClass("active");e("body").addClass("viewing-page-1");if(r.pagination==true)e(".onepage-pagination li a"+"[data-index='1']").addClass("active")}}else{e(r.sectionContainer+"[data-index='1']").addClass("active");e("body").addClass("viewing-page-1");if(r.pagination==true)e(".onepage-pagination li a"+"[data-index='1']").addClass("active")}if(r.pagination==true){e(".onepage-pagination li a").click(function(){var t=e(this).data("index");i.moveTo(t)})}e(document).bind("mousewheel DOMMouseScroll MozMousePixelScroll",function(t){t.preventDefault();var n=t.originalEvent.wheelDelta||-t.originalEvent.detail;if(!e("body").hasClass("disabled-onepage-scroll"))u(t,n)});if(r.responsiveFallback!=false){e(window).resize(function(){o()});o()}if(r.keyboard==true){e(document).keydown(function(t){var n=t.target.tagName.toLowerCase();if(!e("body").hasClass("disabled-onepage-scroll")){switch(t.which){case 38:if(n!="input"&&n!="textarea")i.moveUp();break;case 40:if(n!="input"&&n!="textarea")i.moveDown();break;case 33:if(n!="input"&&n!="textarea")i.moveUp();break;case 34:if(n!="input"&&n!="textarea")i.moveDown();break;case 36:i.moveTo(1);break;case 35:i.moveTo(total);break;default:return}}})}return false}}(window.jQuery) \ No newline at end of file +!function(e){var t={sectionContainer:"section",easing:"ease",animationTime:1e3,pagination:true,updateURL:false,keyboard:true,beforeMove:null,afterMove:null,loop:true,responsiveFallback:false,direction:"vertical"};e.fn.swipeEvents=function(){return this.each(function(){function i(e){var i=e.originalEvent.touches;if(i&&i.length){t=i[0].pageX;n=i[0].pageY;r.bind("touchmove",s)}}function s(e){var i=e.originalEvent.touches;if(i&&i.length){var o=t-i[0].pageX;var u=n-i[0].pageY;if(o>=50){r.trigger("swipeLeft")}if(o<=-50){r.trigger("swipeRight")}if(u>=50){r.trigger("swipeUp")}if(u<=-50){r.trigger("swipeDown")}if(Math.abs(o)>=50||Math.abs(u)>=50){r.unbind("touchmove",s)}}}var t,n,r=e(this);r.bind("touchstart",i)})};e.fn.onepage_scroll=function(n){function o(){var t=false;var n=typeof r.responsiveFallback;if(n=="number"){t=e(window).width()0){if(typeof r.beforeMove=="function")r.beforeMove(next.data("index"));current.removeClass("active");next.addClass("active");e(".onepage-pagination li a"+".active").removeClass("active");e(".onepage-pagination li a"+"[data-index='"+t+"']").addClass("active");e("body")[0].className=e("body")[0].className.replace(/\bviewing-page-\d.*?\b/g,"");e("body").addClass("viewing-page-"+next.data("index"));pos=(t-1)*100*-1;if(history.replaceState&&r.updateURL==true){var n=window.location.href.substr(0,window.location.href.indexOf("#"))+"#"+(t-1);history.pushState({},document.title,n)}i.transformPage(r,pos,t)}};i.addClass("onepage-wrapper").css("position","relative");e.each(s,function(t){e(this).css({position:"absolute",top:topPos+"%"}).addClass("section").attr("data-index",t+1);e(this).css({position:"absolute",left:r.direction=="horizontal"?leftPos+"%":0,top:r.direction=="vertical"||r.direction!="horizontal"?topPos+"%":0});if(r.direction=="horizontal")leftPos=leftPos+100;else topPos=topPos+100;if(r.pagination==true){paginationList+="
  • "}});i.swipeEvents().bind("swipeDown",function(t){if(!e("body").hasClass("disabled-onepage-scroll"))t.preventDefault();i.moveUp()}).bind("swipeUp",function(t){if(!e("body").hasClass("disabled-onepage-scroll"))t.preventDefault();i.moveDown()});if(r.pagination==true){if(e("ul.onepage-pagination").length<1)e("").prependTo("body");if(r.direction=="horizontal"){posLeft=i.find(".onepage-pagination").width()/2*-1;i.find(".onepage-pagination").css("margin-left",posLeft)}else{posTop=i.find(".onepage-pagination").height()/2*-1;i.find(".onepage-pagination").css("margin-top",posTop)}e("ul.onepage-pagination").html(paginationList)}if(window.location.hash!=""&&window.location.hash!="#1"){init_index=window.location.hash.replace("#","");if(parseInt(init_index)<=total&&parseInt(init_index)>0){e(r.sectionContainer+"[data-index='"+init_index+"']").addClass("active");e("body").addClass("viewing-page-"+init_index);if(r.pagination==true)e(".onepage-pagination li a"+"[data-index='"+init_index+"']").addClass("active");next=e(r.sectionContainer+"[data-index='"+init_index+"']");if(next){next.addClass("active");if(r.pagination==true)e(".onepage-pagination li a"+"[data-index='"+init_index+"']").addClass("active");e("body")[0].className=e("body")[0].className.replace(/\bviewing-page-\d.*?\b/g,"");e("body").addClass("viewing-page-"+next.data("index"));if(history.replaceState&&r.updateURL==true){var a=window.location.href.substr(0,window.location.href.indexOf("#"))+"#"+init_index;history.pushState({},document.title,a)}}pos=(init_index-1)*100*-1;i.transformPage(r,pos,init_index)}else{e(r.sectionContainer+"[data-index='1']").addClass("active");e("body").addClass("viewing-page-1");if(r.pagination==true)e(".onepage-pagination li a"+"[data-index='1']").addClass("active")}}else{e(r.sectionContainer+"[data-index='1']").addClass("active");e("body").addClass("viewing-page-1");if(r.pagination==true)e(".onepage-pagination li a"+"[data-index='1']").addClass("active")}if(r.pagination==true){e(".onepage-pagination li a").click(function(){var t=e(this).data("index");i.moveTo(t)})}e(document).bind("mousewheel DOMMouseScroll MozMousePixelScroll",function(t){t.preventDefault();var n=t.originalEvent.wheelDelta||-t.originalEvent.detail;if(!e("body").hasClass("disabled-onepage-scroll"))u(t,n)});if(r.responsiveFallback!=false){e(window).resize(function(){o()});o()}if(r.keyboard==true){e(document).keydown(function(t){var n=t.target.tagName.toLowerCase();if(!e("body").hasClass("disabled-onepage-scroll")){switch(t.which){case 38:if(n!="input"&&n!="textarea")i.moveUp();break;case 40:if(n!="input"&&n!="textarea")i.moveDown();break;case 32:if(n!="input"&&n!="textarea")i.moveDown();break;case 33:if(n!="input"&&n!="textarea")i.moveUp();break;case 34:if(n!="input"&&n!="textarea")i.moveDown();break;case 36:i.moveTo(1);break;case 35:i.moveTo(total);break;default:return}}})}return false}}(window.jQuery)