Advertisement
Guest User

Untitled

a guest
Nov 28th, 2015
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. var envy = (function( $ ) {
  2. 'use strict';
  3.  
  4. var topnavHeight, sliderHeight, headerHeight,
  5.  
  6. /**
  7. * Calculate variables and size of displacements.
  8. *
  9. * @since 1.0.0
  10. */
  11. calculateSizes = function() {
  12. // Menu reset before calculating heights:
  13. $( '.nav-header .genesis-nav-menu' ).hide();
  14.  
  15. topnavHeight = $( '.nav-secondary' ).outerHeight() || 0;
  16. sliderHeight = $( '.slides li' ).outerHeight() || 0;
  17. headerHeight = $( '.site-header' ).height();
  18. },
  19.  
  20. /**
  21. * Determine header position and displacements.
  22. *
  23. * @since 1.0.0
  24. */
  25. doDisplacements = function() {
  26. var scrollYpos = $( document ).scrollTop();
  27. var windowWidth = $( window ).width();
  28.  
  29. // Media query to detect slider onscreen for window size > 960 pixels:
  30. if ( windowWidth > 960 && $( '.home-slider' ).length > 0 && scrollYpos < sliderHeight - 5 ) {
  31. // Set displacements in flow:
  32. $( '.site-container' ).css( 'padding-top',topnavHeight );
  33. $( '.home-slider' ).css( 'margin-bottom',headerHeight );
  34.  
  35. // Unstick header and make header full height:
  36. $( '.site-header' ).addClass( 'unstuck' ).css( 'top', sliderHeight + topnavHeight );
  37. $( '.site-header .wrap' ).removeClass( 'narrow' );
  38.  
  39. return false;
  40. } else {
  41. // Set displacements in flow:
  42. $( '.site-container' ).css( 'padding-top', topnavHeight + headerHeight );
  43. $( '.home-slider' ).css( 'margin-bottom', 0 );
  44.  
  45. // Make header sticky:
  46. $( '.site-header' ).removeClass( 'unstuck' ).css( 'top', topnavHeight );
  47.  
  48. // Make header narrow on scroll:
  49. if ( windowWidth > 960 && scrollYpos > 5 ) {
  50. $( '.site-header .wrap' ).addClass( 'narrow' );
  51. } else {
  52. $( '.site-header .wrap' ).removeClass( 'narrow' );
  53. }
  54. }
  55. },
  56.  
  57. /**
  58. * Add in responsive menu feature.
  59. *
  60. * @since 1.0.0
  61. */
  62. responsiveMenu = function() {
  63. $( '.nav-header .genesis-nav-menu' ).before( '<li class="menu-icon"></li>' );
  64.  
  65. $( '.menu-icon' ).on( 'click.envy', function() {
  66. $( '.nav-header .genesis-nav-menu' ).slideToggle();
  67. });
  68. },
  69.  
  70. /**
  71. * Fade out store notice soon after page load.
  72. *
  73. * @since 1.0.0
  74. */
  75. fadeOutStoreNotice = function() {
  76. $( '.demo_store' ).delay( 4000 ).slideUp();
  77. },
  78.  
  79. /**
  80. * Fire events on document ready, and bind other events.
  81. *
  82. * @since 1.0.0
  83. */
  84. ready = function() {
  85. calculateSizes();
  86. doDisplacements();
  87. responsiveMenu();
  88. fadeOutStoreNotice();
  89.  
  90. $( window ).on( 'resize.envy', calculateSizes );
  91. $( window ).on( 'scroll.envy resize.envy', doDisplacements );
  92. };
  93.  
  94. // Only expose the ready function to the world
  95. return {
  96. ready: ready
  97. };
  98.  
  99. })( jQuery );
  100.  
  101. jQuery( envy.ready );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement