1/*! 2 * classie v1.0.0 3 * class helper functions 4 * from bonzo https://github.com/ded/bonzo 5 * MIT license 6 * 7 * classie.has( elem, 'my-class' ) -> true/false 8 * classie.add( elem, 'my-new-class' ) 9 * classie.remove( elem, 'my-unwanted-class' ) 10 * classie.toggle( elem, 'my-class' ) 11 */ 12 13/*jshint browser: true, strict: true, undef: true, unused: true */ 14/*global define: false */ 15 16( function( window ) { 17 18'use strict'; 19 20// class helper functions from bonzo https://github.com/ded/bonzo 21 22function classReg( className ) { 23 return new RegExp("(^|\\s+)" + className + "(\\s+|$)"); 24} 25 26// classList support for class management 27// altho to be fair, the api sucks because it won't accept multiple classes at once 28var hasClass, addClass, removeClass; 29 30 hasClass = function( elem, c ) { 31 return classReg( c ).test( elem.className ); 32 }; 33 addClass = function( elem, c ) { 34 if ( !hasClass( elem, c ) ) { 35 elem.className = elem.className + ' ' + c; 36 } 37 }; 38 removeClass = function( elem, c ) { 39 elem.className = elem.className.replace( classReg( c ), ' ' ); 40 }; 41 42function toggleClass( elem, c ) { 43 var fn = hasClass( elem, c ) ? removeClass : addClass; 44 fn( elem, c ); 45} 46 47var classie = { 48 // full names 49 hasClass: hasClass, 50 addClass: addClass, 51 removeClass: removeClass, 52 toggleClass: toggleClass, 53 // short names 54 has: hasClass, 55 add: addClass, 56 remove: removeClass, 57 toggle: toggleClass 58}; 59 60// transport 61if ( typeof define === 'function' && define.amd ) { 62 // AMD 63 define( classie ); 64} else { 65 // browser global 66 window.classie = classie; 67} 68 69})( window ); 70 71function init() { 72 window.addEventListener('scroll', function(e){ 73 var distanceY = window.pageYOffset || document.documentElement.scrollTop, 74 shrinkOn = 200, 75 header = document.querySelector(".lower-header"); 76 if (distanceY > shrinkOn) { 77 classie.add(header,"sticky-header"); 78 } else { 79 if (classie.has(header,"sticky-header")) { 80 classie.remove(header,"sticky-header"); 81 } 82 } 83 }); 84} 85window.onload = init();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.