Skip to content

Instantly share code, notes, and snippets.

@englishextra
Last active October 9, 2016 20:30
Show Gist options
  • Save englishextra/a547ad3055144ca927a6ce32fa769d36 to your computer and use it in GitHub Desktop.
Save englishextra/a547ad3055144ca927a6ce32fa769d36 to your computer and use it in GitHub Desktop.
modified for babel Zenscroll 3.2.2
/*!
* modified for babel Zenscroll 3.2.2
* github.com/zengabor/zenscroll
* removed AMD, CommonJS support
* changed this or window to self as argument
* fixed IIFE enforcing
* added brackets in if / for
* Copyright 2015–2016 Gabor Lenard
* minified with closure-compiler.appspot.com/home
* github.com/zengabor/zenscroll/blob/dist/zenscroll.js
*/
var zenscroll=(function(){"use strict";if("undefined"==typeof window||!("document"in window)){return{};};var t=function(t,e,n){e=e||999,n||0===n||(n=9);var o,i=document.documentElement,r=function(){return"getComputedStyle"in window&&"smooth"===window.getComputedStyle(t?t:document.body)["scroll-behavior"]},c=function(){return t?t.scrollTop:window.scrollY||i.scrollTop},u=function(){return t?Math.min(t.offsetHeight,window.innerHeight):window.innerHeight||i.clientHeight},f=function(e){return t?e.offsetTop:e.getBoundingClientRect().top+c()-i.offsetTop},l=function(){clearTimeout(o),o=0},a=function(n,f,a){if(l(),r()){(t||window).scrollTo(0,n),a&&a();}else{var d=c(),s=Math.max(n,0)-d;f=f||Math.min(Math.abs(s),e);var m=(new Date).getTime();(function e(){o=setTimeout(function(){var n=Math.min(((new Date).getTime()-m)/f,1),o=Math.max(Math.floor(d+s*(n<.5?2*n*n:n*(4-2*n)-1)),0);t?t.scrollTop=o:window.scrollTo(0,o),n<1&&u()+o<(t||i).scrollHeight?e():(setTimeout(l,99),a&&a())},9)}());}},d=function(t,e,o){a(f(t)-n,e,o)},s=function(t,e,o){var i=t.getBoundingClientRect().height,r=f(t),l=r+i,s=u(),m=c(),h=m+s;r-n<m||i+n>s?d(t,e,o):l+n>h?a(l-s+n,e,o):o&&o()},m=function(t,e,n,o){a(Math.max(f(t)-u()/2+(n||t.getBoundingClientRect().height/2),0),e,o)},h=function(t,o){t&&(e=t),(0===o||o)&&(n=o)};return{setup:h,to:d,toY:a,intoView:s,center:m,stop:l,moving:function(){return!!o}}},e=t();if("addEventListener"in window&&"smooth"!==document.body.style.scrollBehavior&&!window.noZensmooth){var n=function(t){try{history.replaceState({},"",window.location.href.split("#")[0]+t)}catch(t){};};window.addEventListener("click",function(t){for(var o=t.target;o&&"A"!==o.tagName;){o=o.parentNode;};if(!(!o||1!==t.which||t.shiftKey||t.metaKey||t.ctrlKey||t.altKey)){var i=o.getAttribute("href")||"";if(0===i.indexOf("#")){if("#"===i){t.preventDefault(),e.toY(0),n("");}else{var r=o.hash.substring(1),c=document.getElementById(r);c&&(t.preventDefault(),e.to(c),n("#"+r))}}}},!1);};return{createScroller:t,setup:e.setup,to:e.to,toY:e.toY,intoView:e.intoView,center:e.center,stop:e.stop,moving:e.moving};}());
@zengabor
Copy link

Wrong parameters to zenscroll.to(): the first parameter must be an HTML element.

You probably wanted to write this: zenscroll.toY(500,0)

Here's how to use: https://zengabor.github.io/zenscroll/#howtouse

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment