Advertisement
Guest User

Untitled

a guest
Sep 3rd, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*!
  2.  * classie - class helper functions
  3.  * from bonzo https://github.com/ded/bonzo
  4.  *
  5.  * classie.has( elem, 'my-class' ) -> true/false
  6.  * classie.add( elem, 'my-new-class' )
  7.  * classie.remove( elem, 'my-unwanted-class' )
  8.  * classie.toggle( elem, 'my-class' )
  9.  */
  10.  
  11. /*jshint browser: true, strict: true, undef: true */
  12.  
  13. ( function( window ) {
  14.  
  15. 'use strict';
  16.  
  17. // class helper functions from bonzo https://github.com/ded/bonzo
  18.  
  19. function classReg( className ) {
  20.   return new RegExp("(^|\\s+)" + className + "(\\s+|$)");
  21. }
  22.  
  23. // classList support for class management
  24. // altho to be fair, the api sucks because it won't accept multiple classes at once
  25. var hasClass, addClass, removeClass;
  26.  
  27. if ( 'classList' in document.documentElement ) {
  28.   hasClass = function( elem, c ) {
  29.     return elem.classList.contains( c );
  30.   };
  31.   addClass = function( elem, c ) {
  32.     elem.classList.add( c );
  33.   };
  34.   removeClass = function( elem, c ) {
  35.     elem.classList.remove( c );
  36.   };
  37. }
  38. else {
  39.   hasClass = function( elem, c ) {
  40.     return classReg( c ).test( elem.className );
  41.   };
  42.   addClass = function( elem, c ) {
  43.     if ( !hasClass( elem, c ) ) {
  44.       elem.className = elem.className + ' ' + c;
  45.     }
  46.   };
  47.   removeClass = function( elem, c ) {
  48.     elem.className = elem.className.replace( classReg( c ), ' ' );
  49.   };
  50. }
  51.  
  52. function toggleClass( elem, c ) {
  53.   var fn = hasClass( elem, c ) ? removeClass : addClass;
  54.   fn( elem, c );
  55. }
  56.  
  57. window.classie = {
  58.   // full names
  59.   hasClass: hasClass,
  60.   addClass: addClass,
  61.   removeClass: removeClass,
  62.   toggleClass: toggleClass,
  63.   // short names
  64.   has: hasClass,
  65.   add: addClass,
  66.   remove: removeClass,
  67.   toggle: toggleClass
  68. };
  69.  
  70. })( window );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement