Difference between revisions of "Template:HFUT-China/onepagejs"

(Created page with " !function($){ var defaults = { sectionContainer: "section", easing: "ease", animationTime: 1000, pagination: true, updateURL: false, keyboard: tru...")
 
Line 1: Line 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()<r.responsiveFallback}if(n=="boolean"){t=r.responsiveFallback}if(n=="function"){valFunction=r.responsiveFallback();t=valFunction;typeOFv=typeof t;if(typeOFv=="number"){t=e(window).width()<valFunction}}if(t){e("body").addClass("disabled-onepage-scroll");e(document).unbind("mousewheel DOMMouseScroll MozMousePixelScroll");i.swipeEvents().unbind("swipeDown swipeUp")}else{if(e("body").hasClass("disabled-onepage-scroll")){e("body").removeClass("disabled-onepage-scroll");e("html, body, .wrapper").animate({scrollTop:0},"fast")}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()});e(document).bind("mousewheel DOMMouseScroll MozMousePixelScroll",function(e){e.preventDefault();var t=e.originalEvent.wheelDelta||-e.originalEvent.detail;u(e,t)})}}function u(e,t){deltaOfInterest=t;var n=(new Date).getTime();if(n-lastAnimation<quietPeriod+r.animationTime){e.preventDefault();return}if(deltaOfInterest<0){i.moveDown()}else{i.moveUp()}lastAnimation=n}var r=e.extend({},t,n),i=e(this),s=e(r.sectionContainer);total=s.length,status="off",topPos=0,leftPos=0,lastAnimation=0,quietPeriod=500,paginationList="";e.fn.transformPage=function(t,n,r){if(typeof t.beforeMove=="function")t.beforeMove(r);if(e("html").hasClass("ie8")){if(t.direction=="horizontal"){var s=i.width()/100*n;e(this).animate({left:s+"px"},t.animationTime)}else{var s=i.height()/100*n;e(this).animate({top:s+"px"},t.animationTime)}}else{e(this).css({"-webkit-transform":t.direction=="horizontal"?"translate3d("+n+"%, 0, 0)":"translate3d(0, "+n+"%, 0)","-webkit-transition":"all "+t.animationTime+"ms "+t.easing,"-moz-transform":t.direction=="horizontal"?"translate3d("+n+"%, 0, 0)":"translate3d(0, "+n+"%, 0)","-moz-transition":"all "+t.animationTime+"ms "+t.easing,"-ms-transform":t.direction=="horizontal"?"translate3d("+n+"%, 0, 0)":"translate3d(0, "+n+"%, 0)","-ms-transition":"all "+t.animationTime+"ms "+t.easing,transform:t.direction=="horizontal"?"translate3d("+n+"%, 0, 0)":"translate3d(0, "+n+"%, 0)",transition:"all "+t.animationTime+"ms "+t.easing})}e(this).one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",function(e){if(typeof t.afterMove=="function")t.afterMove(r)})};e.fn.moveDown=function(){var t=e(this);index=e(r.sectionContainer+".active").data("index");current=e(r.sectionContainer+"[data-index='"+index+"']");next=e(r.sectionContainer+"[data-index='"+(index+1)+"']");if(next.length<1){if(r.loop==true){pos=0;next=e(r.sectionContainer+"[data-index='1']")}else{return}}else{pos=index*100*-1}if(typeof r.beforeMove=="function")r.beforeMove(next.data("index"));current.removeClass("active");next.addClass("active");if(r.pagination==true){e(".onepage-pagination li a"+"[data-index='"+index+"']").removeClass("active");e(".onepage-pagination li a"+"[data-index='"+next.data("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 n=window.location.href.substr(0,window.location.href.indexOf("#"))+"#"+(index+1);history.pushState({},document.title,n)}t.transformPage(r,pos,next.data("index"))};e.fn.moveUp=function(){var t=e(this);index=e(r.sectionContainer+".active").data("index");current=e(r.sectionContainer+"[data-index='"+index+"']");next=e(r.sectionContainer+"[data-index='"+(index-1)+"']");if(next.length<1){if(r.loop==true){pos=(total-1)*100*-1;next=e(r.sectionContainer+"[data-index='"+total+"']")}else{return}}else{pos=(next.data("index")-1)*100*-1}if(typeof r.beforeMove=="function")r.beforeMove(next.data("index"));current.removeClass("active");next.addClass("active");if(r.pagination==true){e(".onepage-pagination li a"+"[data-index='"+index+"']").removeClass("active");e(".onepage-pagination li a"+"[data-index='"+next.data("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 n=window.location.href.substr(0,window.location.href.indexOf("#"))+"#"+(index-1);history.pushState({},document.title,n)}t.transformPage(r,pos,next.data("index"))};e.fn.moveTo=function(t){current=e(r.sectionContainer+".active");next=e(r.sectionContainer+"[data-index='"+t+"']");if(next.length>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+="<li><a data-index='"+(t+1)+"' href='#"+(t+1)+"'></a></li>"}});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("<ul class='onepage-pagination'></ul>").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)
 
+
!function($){
+
 
+
  var defaults = {
+
    sectionContainer: "section",
+
    easing: "ease",
+
    animationTime: 1000,
+
    pagination: true,
+
    updateURL: false,
+
    keyboard: true,
+
    beforeMove: null,
+
    afterMove: null,
+
    loop: true,
+
    responsiveFallback: false,
+
    direction : 'vertical'
+
};
+
 
+
/*------------------------------------------------*/
+
/*  Credit: Eike Send for the awesome swipe event */
+
/*------------------------------------------------*/
+
 
+
$.fn.swipeEvents = function() {
+
      return this.each(function() {
+
 
+
        var startX,
+
            startY,
+
            $this = $(this);
+
 
+
        $this.bind('touchstart', touchstart);
+
 
+
        function touchstart(event) {
+
          var touches = event.originalEvent.touches;
+
          if (touches && touches.length) {
+
            startX = touches[0].pageX;
+
            startY = touches[0].pageY;
+
            $this.bind('touchmove', touchmove);
+
          }
+
        }
+
 
+
        function touchmove(event) {
+
          var touches = event.originalEvent.touches;
+
          if (touches && touches.length) {
+
            var deltaX = startX - touches[0].pageX;
+
            var deltaY = startY - touches[0].pageY;
+
 
+
            if (deltaX >= 50) {
+
              $this.trigger("swipeLeft");
+
            }
+
            if (deltaX <= -50) {
+
              $this.trigger("swipeRight");
+
            }
+
            if (deltaY >= 50) {
+
              $this.trigger("swipeUp");
+
            }
+
            if (deltaY <= -50) {
+
              $this.trigger("swipeDown");
+
            }
+
            if (Math.abs(deltaX) >= 50 || Math.abs(deltaY) >= 50) {
+
              $this.unbind('touchmove', touchmove);
+
            }
+
          }
+
        }
+
 
+
      });
+
    };
+
 
+
 
+
  $.fn.onepage_scroll = function(options){
+
    var settings = $.extend({}, defaults, options),
+
        el = $(this),
+
        sections = $(settings.sectionContainer)
+
        total = sections.length,
+
        status = "off",
+
        topPos = 0,
+
        leftPos = 0,
+
        lastAnimation = 0,
+
        quietPeriod = 500,
+
        paginationList = "";
+
 
+
    $.fn.transformPage = function(settings, pos, index) {
+
      if (typeof settings.beforeMove == 'function') settings.beforeMove(index);
+
 
+
      // 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);
+
      });
+
    }
+
 
+
    $.fn.moveDown = function() {
+
      var el = $(this)
+
      index = $(settings.sectionContainer +".active").data("index");
+
      current = $(settings.sectionContainer + "[data-index='" + index + "']");
+
      next = $(settings.sectionContainer + "[data-index='" + (index + 1) + "']");
+
      if(next.length < 1) {
+
        if (settings.loop == true) {
+
          pos = 0;
+
          next = $(settings.sectionContainer + "[data-index='1']");
+
        } else {
+
          return
+
        }
+
 
+
      }else {
+
        pos = (index * 100) * -1;
+
      }
+
      if (typeof settings.beforeMove == 'function') settings.beforeMove( next.data("index"));
+
      current.removeClass("active")
+
      next.addClass("active");
+
      if(settings.pagination == true) {
+
        $(".onepage-pagination li a" + "[data-index='" + index + "']").removeClass("active");
+
        $(".onepage-pagination li a" + "[data-index='" + next.data("index") + "']").addClass("active");
+
      }
+
 
+
      $("body")[0].className = $("body")[0].className.replace(/\bviewing-page-\d.*?\b/g, '');
+
      $("body").addClass("viewing-page-"+next.data("index"))
+
 
+
      if (history.replaceState && settings.updateURL == true) {
+
        var href = window.location.href.substr(0,window.location.href.indexOf('#')) + "#" + (index + 1);
+
        history.pushState( {}, document.title, href );
+
      }
+
      el.transformPage(settings, pos, next.data("index"));
+
    }
+
 
+
    $.fn.moveUp = function() {
+
      var el = $(this)
+
      index = $(settings.sectionContainer +".active").data("index");
+
      current = $(settings.sectionContainer + "[data-index='" + index + "']");
+
      next = $(settings.sectionContainer + "[data-index='" + (index - 1) + "']");
+
 
+
      if(next.length < 1) {
+
        if (settings.loop == true) {
+
          pos = ((total - 1) * 100) * -1;
+
          next = $(settings.sectionContainer + "[data-index='"+total+"']");
+
        }
+
        else {
+
          return
+
        }
+
      }else {
+
        pos = ((next.data("index") - 1) * 100) * -1;
+
      }
+
      if (typeof settings.beforeMove == 'function') settings.beforeMove(next.data("index"));
+
      current.removeClass("active")
+
      next.addClass("active")
+
      if(settings.pagination == true) {
+
        $(".onepage-pagination li a" + "[data-index='" + index + "']").removeClass("active");
+
        $(".onepage-pagination li a" + "[data-index='" + next.data("index") + "']").addClass("active");
+
      }
+
      $("body")[0].className = $("body")[0].className.replace(/\bviewing-page-\d.*?\b/g, '');
+
      $("body").addClass("viewing-page-"+next.data("index"))
+
 
+
      if (history.replaceState && settings.updateURL == true) {
+
        var href = window.location.href.substr(0,window.location.href.indexOf('#')) + "#" + (index - 1);
+
        history.pushState( {}, document.title, href );
+
      }
+
      el.transformPage(settings, pos, next.data("index"));
+
    }
+
 
+
    $.fn.moveTo = function(page_index) {
+
      current = $(settings.sectionContainer + ".active")
+
      next = $(settings.sectionContainer + "[data-index='" + (page_index) + "']");
+
      if(next.length > 0) {
+
        if (typeof settings.beforeMove == 'function') settings.beforeMove(next.data("index"));
+
        current.removeClass("active")
+
        next.addClass("active")
+
        $(".onepage-pagination li a" + ".active").removeClass("active");
+
        $(".onepage-pagination li a" + "[data-index='" + (page_index) + "']").addClass("active");
+
        $("body")[0].className = $("body")[0].className.replace(/\bviewing-page-\d.*?\b/g, '');
+
        $("body").addClass("viewing-page-"+next.data("index"))
+
 
+
        pos = ((page_index - 1) * 100) * -1;
+
 
+
        if (history.replaceState && settings.updateURL == true) {
+
            var href = window.location.href.substr(0,window.location.href.indexOf('#')) + "#" + (page_index - 1);
+
            history.pushState( {}, document.title, href );
+
        }
+
        el.transformPage(settings, pos, page_index);
+
      }
+
    }
+
 
+
    function responsive() {
+
      //start modification
+
      var valForTest = false;
+
      var typeOfRF = typeof settings.responsiveFallback
+
 
+
      if(typeOfRF == "number"){
+
      valForTest = $(window).width() < settings.responsiveFallback;
+
      }
+
      if(typeOfRF == "boolean"){
+
      valForTest = settings.responsiveFallback;
+
      }
+
      if(typeOfRF == "function"){
+
      valFunction = settings.responsiveFallback();
+
      valForTest = valFunction;
+
      typeOFv = typeof valForTest;
+
      if(typeOFv == "number"){
+
      valForTest = $(window).width() < valFunction;
+
      }
+
      }
+
 
+
      //end modification
+
      if (valForTest) {
+
        $("body").addClass("disabled-onepage-scroll");
+
        $(document).unbind('mousewheel DOMMouseScroll MozMousePixelScroll');
+
        el.swipeEvents().unbind("swipeDown swipeUp");
+
      } else {
+
        if($("body").hasClass("disabled-onepage-scroll")) {
+
          $("body").removeClass("disabled-onepage-scroll");
+
          $("html, body, .wrapper").animate({ scrollTop: 0 }, "fast");
+
        }
+
 
+
 
+
        el.swipeEvents().bind("swipeDown",  function(event){
+
          if (!$("body").hasClass("disabled-onepage-scroll")) event.preventDefault();
+
          el.moveUp();
+
        }).bind("swipeUp", function(event){
+
          if (!$("body").hasClass("disabled-onepage-scroll")) event.preventDefault();
+
          el.moveDown();
+
        });
+
 
+
        $(document).bind('mousewheel DOMMouseScroll MozMousePixelScroll', function(event) {
+
          event.preventDefault();
+
          var delta = event.originalEvent.wheelDelta || -event.originalEvent.detail;
+
          init_scroll(event, delta);
+
        });
+
      }
+
    }
+
 
+
 
+
    function init_scroll(event, delta) {
+
        deltaOfInterest = delta;
+
        var timeNow = new Date().getTime();
+
        // Cancel scroll if currently animating or within quiet period
+
        if(timeNow - lastAnimation < quietPeriod + settings.animationTime) {
+
            event.preventDefault();
+
            return;
+
        }
+
 
+
        if (deltaOfInterest < 0) {
+
          el.moveDown()
+
        } else {
+
          el.moveUp()
+
        }
+
        lastAnimation = timeNow;
+
    }
+
 
+
    // Prepare everything before binding wheel scroll
+
 
+
    el.addClass("onepage-wrapper").css("position","relative");
+
    $.each( sections, function(i) {
+
      $(this).css({
+
        position: "absolute",
+
        top: topPos + "%"
+
      }).addClass("section").attr("data-index", i+1);
+
 
+
 
+
      $(this).css({
+
        position: "absolute",
+
        left: ( settings.direction == 'horizontal' )
+
          ? leftPos + "%"
+
          : 0,
+
        top: ( settings.direction == 'vertical' || settings.direction != 'horizontal' )
+
          ? topPos + "%"
+
          : 0
+
      });
+
 
+
      if (settings.direction == 'horizontal')
+
        leftPos = leftPos + 100;
+
      else
+
        topPos = topPos + 100;
+
 
+
 
+
      if(settings.pagination == true) {
+
        paginationList += "<li><a data-index='"+(i+1)+"' href='#" + (i+1) + "'></a></li>"
+
      }
+
    });
+
 
+
    el.swipeEvents().bind("swipeDown", function(event){
+
      if (!$("body").hasClass("disabled-onepage-scroll")) event.preventDefault();
+
      el.moveUp();
+
    }).bind("swipeUp", function(event){
+
      if (!$("body").hasClass("disabled-onepage-scroll")) event.preventDefault();
+
      el.moveDown();
+
    });
+
 
+
    // Create Pagination and Display Them
+
    if (settings.pagination == true) {
+
      if ($('ul.onepage-pagination').length < 1) $("<ul class='onepage-pagination'></ul>").prependTo("body");
+
 
+
      if( settings.direction == 'horizontal' ) {
+
        posLeft = (el.find(".onepage-pagination").width() / 2) * -1;
+
        el.find(".onepage-pagination").css("margin-left", posLeft);
+
      } else {
+
        posTop = (el.find(".onepage-pagination").height() / 2) * -1;
+
        el.find(".onepage-pagination").css("margin-top", posTop);
+
      }
+
      $('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) {
+
        $(settings.sectionContainer + "[data-index='" + init_index + "']").addClass("active")
+
        $("body").addClass("viewing-page-"+ init_index)
+
        if(settings.pagination == true) $(".onepage-pagination li a" + "[data-index='" + init_index + "']").addClass("active");
+
 
+
        next = $(settings.sectionContainer + "[data-index='" + (init_index) + "']");
+
        if(next) {
+
          next.addClass("active")
+
          if(settings.pagination == true) $(".onepage-pagination li a" + "[data-index='" + (init_index) + "']").addClass("active");
+
          $("body")[0].className = $("body")[0].className.replace(/\bviewing-page-\d.*?\b/g, '');
+
          $("body").addClass("viewing-page-"+next.data("index"))
+
          if (history.replaceState && settings.updateURL == true) {
+
            var href = window.location.href.substr(0,window.location.href.indexOf('#')) + "#" + (init_index);
+
            history.pushState( {}, document.title, href );
+
          }
+
        }
+
        pos = ((init_index - 1) * 100) * -1;
+
        el.transformPage(settings, pos, init_index);
+
      } else {
+
        $(settings.sectionContainer + "[data-index='1']").addClass("active")
+
        $("body").addClass("viewing-page-1")
+
        if(settings.pagination == true) $(".onepage-pagination li a" + "[data-index='1']").addClass("active");
+
      }
+
    }else{
+
      $(settings.sectionContainer + "[data-index='1']").addClass("active")
+
      $("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");
+
        el.moveTo(page_index);
+
      });
+
    }
+
 
+
 
+
    $(document).bind('mousewheel DOMMouseScroll MozMousePixelScroll', function(event) {
+
      event.preventDefault();
+
      var delta = event.originalEvent.wheelDelta || -event.originalEvent.detail;
+
      if(!$("body").hasClass("disabled-onepage-scroll")) init_scroll(event, delta);
+
    });
+
 
+
 
+
    if(settings.responsiveFallback != false) {
+
      $(window).resize(function() {
+
        responsive();
+
      });
+
 
+
      responsive();
+
    }
+
 
+
    if(settings.keyboard == true) {
+
      $(document).keydown(function(e) {
+
        var tag = e.target.tagName.toLowerCase();
+
 
+
        if (!$("body").hasClass("disabled-onepage-scroll")) {
+
          switch(e.which) {
+
            case 38:
+
              if (tag != 'input' && tag != 'textarea') el.moveUp()
+
            break;
+
            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;
+
            case 34: //page dwn
+
              if (tag != 'input' && tag != 'textarea') el.moveDown()
+
            break;
+
            case 36: //home
+
              el.moveTo(1);
+
            break;
+
            case 35: //end
+
              el.moveTo(total);
+
            break;
+
            default: return;
+
          }
+
        }
+
 
+
      });
+
    }
+
    return false;
+
  }
+
 
+
 
+
}(window.jQuery);
+

Revision as of 13:00, 16 September 2015

!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()<r.responsiveFallback}if(n=="boolean"){t=r.responsiveFallback}if(n=="function"){valFunction=r.responsiveFallback();t=valFunction;typeOFv=typeof t;if(typeOFv=="number"){t=e(window).width()<valFunction}}if(t){e("body").addClass("disabled-onepage-scroll");e(document).unbind("mousewheel DOMMouseScroll MozMousePixelScroll");i.swipeEvents().unbind("swipeDown swipeUp")}else{if(e("body").hasClass("disabled-onepage-scroll")){e("body").removeClass("disabled-onepage-scroll");e("html, body, .wrapper").animate({scrollTop:0},"fast")}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()});e(document).bind("mousewheel DOMMouseScroll MozMousePixelScroll",function(e){e.preventDefault();var t=e.originalEvent.wheelDelta||-e.originalEvent.detail;u(e,t)})}}function u(e,t){deltaOfInterest=t;var n=(new Date).getTime();if(n-lastAnimation<quietPeriod+r.animationTime){e.preventDefault();return}if(deltaOfInterest<0){i.moveDown()}else{i.moveUp()}lastAnimation=n}var r=e.extend({},t,n),i=e(this),s=e(r.sectionContainer);total=s.length,status="off",topPos=0,leftPos=0,lastAnimation=0,quietPeriod=500,paginationList="";e.fn.transformPage=function(t,n,r){if(typeof t.beforeMove=="function")t.beforeMove(r);if(e("html").hasClass("ie8")){if(t.direction=="horizontal"){var s=i.width()/100*n;e(this).animate({left:s+"px"},t.animationTime)}else{var s=i.height()/100*n;e(this).animate({top:s+"px"},t.animationTime)}}else{e(this).css({"-webkit-transform":t.direction=="horizontal"?"translate3d("+n+"%, 0, 0)":"translate3d(0, "+n+"%, 0)","-webkit-transition":"all "+t.animationTime+"ms "+t.easing,"-moz-transform":t.direction=="horizontal"?"translate3d("+n+"%, 0, 0)":"translate3d(0, "+n+"%, 0)","-moz-transition":"all "+t.animationTime+"ms "+t.easing,"-ms-transform":t.direction=="horizontal"?"translate3d("+n+"%, 0, 0)":"translate3d(0, "+n+"%, 0)","-ms-transition":"all "+t.animationTime+"ms "+t.easing,transform:t.direction=="horizontal"?"translate3d("+n+"%, 0, 0)":"translate3d(0, "+n+"%, 0)",transition:"all "+t.animationTime+"ms "+t.easing})}e(this).one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",function(e){if(typeof t.afterMove=="function")t.afterMove(r)})};e.fn.moveDown=function(){var t=e(this);index=e(r.sectionContainer+".active").data("index");current=e(r.sectionContainer+"[data-index='"+index+"']");next=e(r.sectionContainer+"[data-index='"+(index+1)+"']");if(next.length<1){if(r.loop==true){pos=0;next=e(r.sectionContainer+"[data-index='1']")}else{return}}else{pos=index*100*-1}if(typeof r.beforeMove=="function")r.beforeMove(next.data("index"));current.removeClass("active");next.addClass("active");if(r.pagination==true){e(".onepage-pagination li a"+"[data-index='"+index+"']").removeClass("active");e(".onepage-pagination li a"+"[data-index='"+next.data("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 n=window.location.href.substr(0,window.location.href.indexOf("#"))+"#"+(index+1);history.pushState({},document.title,n)}t.transformPage(r,pos,next.data("index"))};e.fn.moveUp=function(){var t=e(this);index=e(r.sectionContainer+".active").data("index");current=e(r.sectionContainer+"[data-index='"+index+"']");next=e(r.sectionContainer+"[data-index='"+(index-1)+"']");if(next.length<1){if(r.loop==true){pos=(total-1)*100*-1;next=e(r.sectionContainer+"[data-index='"+total+"']")}else{return}}else{pos=(next.data("index")-1)*100*-1}if(typeof r.beforeMove=="function")r.beforeMove(next.data("index"));current.removeClass("active");next.addClass("active");if(r.pagination==true){e(".onepage-pagination li a"+"[data-index='"+index+"']").removeClass("active");e(".onepage-pagination li a"+"[data-index='"+next.data("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 n=window.location.href.substr(0,window.location.href.indexOf("#"))+"#"+(index-1);history.pushState({},document.title,n)}t.transformPage(r,pos,next.data("index"))};e.fn.moveTo=function(t){current=e(r.sectionContainer+".active");next=e(r.sectionContainer+"[data-index='"+t+"']");if(next.length>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+="
  • <a data-index='"+(t+1)+"' href='#"+(t+1)+"'></a>
  • "}});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)