-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathskrollr.menu.min.js
2 lines (2 loc) · 1.34 KB
/
skrollr.menu.min.js
1
2
/*! skrollr-menu 0.1.8 (2013-10-28) | Alexander Prinzhorn - https://github.com/Prinzhorn/skrollr-menu | Free to use under terms of MIT license */
(function(t,e){"use strict";var n=500,o="sqrt",r="data-menu-top",u="data-menu-offset",a=e.skrollr,i=e.history,c=!!i.pushState,l=function(e){return"A"===e.tagName?e:e===t?!1:l(e.parentNode)},f=function(t){if(1===t.which||0===t.button){var e=l(t.target);e&&s(e)&&t.preventDefault()}},s=function(e,n){var o=e.getAttribute("href");if(!/^#/.test(o))return!1;var a,l;if(l=b?b(e):e.getAttribute(r),null!==l)a=+l;else{var f=t.getElementById(o.substr(1));if(!f)return!1;a=d.relativeToAbsolute(f,"top","top");var s=f.getAttribute(u);null!==s&&(a+=+s)}return c&&!n&&i.pushState({top:a},"",o),g&&!n?d.animateTo(a,{duration:m(d.getScrollTop(),a),easing:v}):h(function(){d.setScrollTop(a)}),!0},p=function(){if(e.location.hash&&t.querySelector){var n=t.querySelector('a[href="'+e.location.hash+'"]');n&&s(n,!0)}},h=function(t){e.setTimeout(t,1)};a.menu={},a.menu.init=function(r,u){d=r,u=u||{},v=u.easing||o,g=u.animate!==!1,m=u.duration||n,b=u.handleLink,"number"==typeof m&&(m=function(t){return function(){return t}}(m)),a.addEvent(t,"click",f),c&&a.addEvent(e,"popstate",function(t){var e=t.state||{},n=e.top||0;h(function(){d.setScrollTop(n)})},!1),p()};var d,v,m,g,b;h(function(){e.location.hash&&e.scrollTo(0,0)})})(document,window);