UNPKG

scroll-spy

Version:

A light weight scroll spy library in vanilla js

1 lines 2.31 kB
!function e(t,n,o){function r(c,l){if(!n[c]){if(!t[c]){var f="function"==typeof require&&require;if(!l&&f)return f(c,!0);if(i)return i(c,!0);var u=new Error("Cannot find module '"+c+"'");throw u.code="MODULE_NOT_FOUND",u}var s=n[c]={exports:{}};t[c][0].call(s.exports,function(e){var n=t[c][1][e];return r(n?n:e)},s,s.exports,e,t,n,o)}return n[c].exports}for(var i="function"==typeof require&&require,c=0;c<o.length;c++)r(o[c]);return r}({1:[function(e,t,n){"use strict";t.exports=function(e){var t=e.getBoundingClientRect(),n=document.body,o=document.documentElement,r=window.pageYOffset||o.scrollTop||n.scrollTop,i=window.pageXOffset||o.scrollLeft||n.scrollLeft,c=o.clientTop||n.clientTop||0,l=o.clientLeft||n.clientLeft||0,f=t.top+r-c,u=t.left+i-l;return{top:Math.round(f),left:Math.round(u)}}},{}],2:[function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},r=e("./scroll-spy");!function(e){"function"==typeof define&&define.amd?define([],e):"object"===("undefined"==typeof window?"undefined":o(window))&&(window.scrollSpy=e())}(function(){return r})},{"./scroll-spy":3}],3:[function(e,t,n){"use strict";function o(e){for(var t=[],n=0,o=e.length;o>n;n++){var r=e[n].hash.replace(/^#/,""),c=document.getElementById(r),l=i(c),f=window.getComputedStyle(document.getElementById(r)).height;t[n]={height:parseInt(f),top:l.top,elem:e[n]}}return t}function r(e,t){for(var n=0,o=0,r=e.length;r>o;o++)if(l.scrollTop<e[o].top-e[o].height/3){n=o;break}for(var i=0,f=e.length;f>i;i++)c.removeClass(e[i].elem,t);n>0&&c.addClass(e[n-1].elem,t)}var i=e("./getOffsetRect"),c=e("./util"),l=document.body;t.exports={init:function(e){var t=e.activeClassName||"active",n=e.scrollTarget||document,i=Array.prototype.slice.call(e.nodeList),l=o(i);r(l,t),c.bind(n,"scroll",function(){r(l,t)})}}},{"./getOffsetRect":1,"./util":4}],4:[function(e,t,n){"use strict";t.exports={bind:function(e,t,n){e.addEventListener(t,n,!1)},addClass:function(e,t){var n=e.className.split(" ");return n.indexOf(t)<0&&n.push(t),e.className=n.join(" "),e},removeClass:function(e,t){var n=e.className.split(" "),o=n.indexOf(t);return o>-1&&n.splice(o,1),e.className=n.join(" "),e}}},{}]},{},[2]);