wp/wp-content/themes/twentythirteen/js/functions.js
author ymh <ymh.work@gmail.com>
Thu, 07 Nov 2013 00:08:07 +0000
changeset 1 f6eb5a861d2f
parent 0 d970ebf37754
child 5 5e2f62d02dcd
permissions -rw-r--r--
remove unnessary files. Make timthumb work
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
 * Functionality specific to Twenty Thirteen.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 * Provides helper functions to enhance the theme experience.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
( function( $ ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
	var body    = $( 'body' ),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
	    _window = $( window );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
	 * Adds a top margin to the footer if the sidebar widget area is higher
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
	 * than the rest of the page, to help the footer always visually clear
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
	 * the sidebar.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
	$( function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
		if ( body.is( '.sidebar' ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
			var sidebar   = $( '#secondary .widget-area' ),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
			    secondary = ( 0 == sidebar.length ) ? -40 : sidebar.height(),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
			    margin    = $( '#tertiary .widget-area' ).height() - $( '#content' ).height() - secondary;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
			if ( margin > 0 && _window.innerWidth() > 999 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
				$( '#colophon' ).css( 'margin-top', margin + 'px' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
	} );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
	 * Enables menu toggle for small screens.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
	( function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
		var nav = $( '#site-navigation' ), button, menu;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
		if ( ! nav )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
			return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
		button = nav.find( '.menu-toggle' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
		if ( ! button )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
			return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
		// Hide button if menu is missing or empty.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
		menu = nav.find( '.nav-menu' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
		if ( ! menu || ! menu.children().length ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
			button.hide();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
			return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
		$( '.menu-toggle' ).on( 'click.twentythirteen', function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
			nav.toggleClass( 'toggled-on' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
		} );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
	} )();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
	 * Makes "skip to content" link work correctly in IE9 and Chrome for better
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
	 * accessibility.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
	 * @link http://www.nczonline.net/blog/2013/01/15/fixing-skip-to-content-links/
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
	_window.on( 'hashchange.twentythirteen', function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
		var element = document.getElementById( location.hash.substring( 1 ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
		if ( element ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
			if ( ! /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
				element.tabIndex = -1;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
			element.focus();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
	} );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
	 * Arranges footer widgets vertically.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
	if ( $.isFunction( $.fn.masonry ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
		var columnWidth = body.is( '.sidebar' ) ? 228 : 245;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
		$( '#secondary .widget-area' ).masonry( {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
			itemSelector: '.widget',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
			columnWidth: columnWidth,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
			gutterWidth: 20,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
			isRTL: body.is( '.rtl' )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
		} );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
} )( jQuery );