forked from robflaherty/scroll-depth
-
Notifications
You must be signed in to change notification settings - Fork 0
/
jquery.scrolldepth.min.js
6 lines (6 loc) · 1.09 KB
/
jquery.scrolldepth.min.js
1
2
3
4
5
6
/*!
* jquery.scrolldepth.js | v0.1.1
* Copyright (c) 2012 Rob Flaherty (@robflaherty)
* Licensed under the MIT and GPL licenses.
*/
;(function(d,c,a,g){var e={elements:[],minHeight:0,offset:0,percentage:true,testing:false},f=d(c),b=[];d.scrollDepth=function(i){i=d.extend({},e,i);if(d(a).height()<i.minHeight){return}l("Percentage","Baseline");function l(n,m){if(!i.testing){_gaq.push(["_trackEvent","Scroll Depth",n,m,1,true])}else{d("#console").html(n+": "+m)}}function k(m){return{"25%":parseInt(m*0.25,10),"50%":parseInt(m*0.5,10),"75%":parseInt(m*0.75,10),"100%":m-1}}function h(n,m){d.each(n,function(o,p){if(d.inArray(o,b)===-1&&m>=p){l("Percentage",o);b.push(o)}})}function j(n,m){d.each(n,function(o,p){if(d.inArray(p,b)===-1&&d(p).length){if(m>=d(p).offset().top){l("Elements",p);b.push(p)}}})}f.on("scroll.scrollDepth",function(){var o=d(a).height(),n=c.innerHeight?c.innerHeight:f.height(),m=f.scrollTop()+n,q=parseInt(n*(i.offset/100),10),p=k(o);if(b.length>=4+i.elements.length){f.off("scroll.scrollDepth");return}if(i.elements){j(i.elements,m)}if(i.percentage){h(p,m)}})}})(jQuery,window,document);