diff --git a/src/wp-content/themes/twentyfourteen/js/functions.js b/src/wp-content/themes/twentyfourteen/js/functions.js index 7efc7cf6b5..2b83db0b3c 100644 --- a/src/wp-content/themes/twentyfourteen/js/functions.js +++ b/src/wp-content/themes/twentyfourteen/js/functions.js @@ -105,11 +105,6 @@ if ( body.is( '.header-image' ) ) { - // Recaculate the header height when a custom header loads. - $( 'body' ).on( 'wp-custom-header-video-loaded', function() { - mastheadOffset = $( '#site-header' ).height(); - } ); - _window.on( 'scroll.twentyfourteen', function() { if ( _window.scrollTop() > mastheadOffset && mastheadHeight < 49 ) { body.addClass( 'masthead-fixed' ); @@ -118,6 +113,12 @@ } } ); + // Update masthead offset once a custom header video loads. + $( document ).on( 'wp-custom-header-video-loaded', function() { + mastheadOffset = $( '#site-header' ).height(); + } ); + + // Update masthead offset after a selective refresh. if ( 'undefined' !== typeof wp && wp.customize && wp.customize.selectiveRefresh ) { wp.customize.selectiveRefresh.bind( 'partial-content-rendered', function() { diff --git a/src/wp-includes/js/wp-custom-header.js b/src/wp-includes/js/wp-custom-header.js index 80ebd917dc..08e24882fa 100644 --- a/src/wp-includes/js/wp-custom-header.js +++ b/src/wp-includes/js/wp-custom-header.js @@ -1,4 +1,4 @@ -(function( window, $, settings ) { +(function( window, settings ) { if ( ! ( 'addEventListener' in window ) ) { // Fail gracefully in unsupported browsers. @@ -31,11 +31,16 @@ if ( handlers.hasOwnProperty( id ) && handler.test( settings ) ) { handler.callback( settings ); + + // Set up and dispatch custom event when the video is loaded. + if ( 'dispatchEvent' in window ) { + var videoLoaded = new Event( 'wp-custom-header-video-loaded' ); + document.dispatchEvent( videoLoaded ); + } + break; } } - - $( 'body' ).trigger( 'wp-custom-header-video-loaded' ); } } @@ -151,4 +156,4 @@ }); } -})( window, jQuery, window._wpCustomHeaderSettings || {} ); +})( window, window._wpCustomHeaderSettings || {} );