85 lines
2.0 KiB
JavaScript
85 lines
2.0 KiB
JavaScript
/**
|
|
* Add any custom theme JavaScript to this file.
|
|
*/
|
|
|
|
( function ( document, $ ) {
|
|
|
|
'use strict';
|
|
|
|
/**
|
|
* Add shrink class to header on scroll.
|
|
*/
|
|
$( window ).scroll( function() {
|
|
var scroll = $( window ).scrollTop();
|
|
var height = $( '.page-header' ).outerHeight();
|
|
var header = $( '.site-header' ).outerHeight();
|
|
if ( scroll >= header) {
|
|
$( '.site-header' ).addClass( 'shrink' );
|
|
} else {
|
|
$( '.site-header' ).removeClass( 'shrink' );
|
|
}
|
|
} );
|
|
|
|
/*
|
|
* Move header-right into nav on mobile.
|
|
*/
|
|
$( window ).on( "resize", function () {
|
|
if ( $( window ).width() < 896 ) {
|
|
$( '.header-widget-area' ).appendTo( '.nav-primary .wrap' );
|
|
} else {
|
|
$( '.header-widget-area' ).appendTo( '.site-header .wrap' );
|
|
$( '.nav-primary .header-widget-area' ).remove();
|
|
}
|
|
} ).resize();
|
|
|
|
/**
|
|
* Smooth scrolling.
|
|
*/
|
|
// Select all links with hashes
|
|
$( 'a[href*="#"]' )
|
|
|
|
// Remove links that don't actually link to anything
|
|
.not( '[href="#"]' ).not( '[href="#0"]' )
|
|
|
|
// Remove WooCommerce tabs
|
|
.not( '[href*="#tab-"]' ).click( function ( event ) {
|
|
|
|
// On-page links
|
|
if ( location.pathname.replace( /^\//, '' ) == this.pathname.replace( /^\//, '' ) && location.hostname == this.hostname ) {
|
|
|
|
// Figure out element to scroll to
|
|
var target = $( this.hash );
|
|
target = target.length ? target : $( '[name=' + this.hash.slice( 1 ) + ']' );
|
|
|
|
// Does a scroll target exist?
|
|
if ( target.length ) {
|
|
|
|
// Only prevent default if animation is actually gonna happen
|
|
event.preventDefault();
|
|
$( 'html, body' ).animate( {
|
|
scrollTop: target.offset().top
|
|
}, 1000, function () {
|
|
|
|
// Callback after animation, must change focus!
|
|
var $target = $( target );
|
|
$target.focus();
|
|
|
|
// Checking if the target was focused
|
|
if ( $target.is( ":focus" ) ) {
|
|
|
|
return false;
|
|
} else {
|
|
|
|
// Adding tabindex for elements not focusable
|
|
$target.attr( 'tabindex', '-1' );
|
|
|
|
// Set focus again
|
|
$target.focus();
|
|
};
|
|
} );
|
|
}
|
|
}
|
|
} );
|
|
|
|
} )( document, jQuery );
|