Make WordPress Core

Ticket #30674: 30674.diff

File 30674.diff, 2.7 KB (added by iamtakashi, 12 years ago)
  • src/wp-content/themes/twentyfifteen/js/functions.js

     
    6666        function scroll() {
    6767                var windowPos = $window.scrollTop();
    6868
    69                 if ( 955 <= windowWidth && sidebarHeight + adminbarOffset < bodyHeight ) {
    70                         if ( sidebarHeight + adminbarOffset > windowHeight ) {
    71                                 if ( windowPos > lastWindowPos ) {
    72                                         if ( top ) {
    73                                                 top = false;
    74                                                 topOffset = ( $sidebar.offset().top > 0 ) ? $sidebar.offset().top - adminbarOffset : 0;
    75                                                 $sidebar.attr( 'style', 'top: ' + topOffset + 'px;' );
    76                                         } else if ( ! bottom && windowPos + windowHeight > sidebarHeight + $sidebar.offset().top ) {
    77                                                 bottom = true;
    78                                                 $sidebar.attr( 'style', 'position: fixed;bottom: 0;' );
    79                                         }
    80                                 } else if ( windowPos < lastWindowPos ) {
    81                                         if ( bottom ) {
    82                                                 bottom = false;
    83                                                 topOffset = ( $sidebar.offset().top > 0 ) ? $sidebar.offset().top - adminbarOffset : 0;
    84                                                 $sidebar.attr( 'style', 'top: ' + topOffset + 'px;' );
    85                                         } else if ( ! top && windowPos + adminbarOffset < $sidebar.offset().top ) {
    86                                                 top = true;
    87                                                 $sidebar.attr( 'style', 'position: fixed;' );
    88                                         }
    89                                 } else {
    90                                         top = bottom = false;
     69                if ( 955 > windowWidth ) {
     70                        return;
     71                }
     72
     73                if ( sidebarHeight + adminbarOffset > windowHeight ) {
     74                        if ( windowPos > lastWindowPos ) {
     75                                if ( top ) {
     76                                        top = false;
    9177                                        topOffset = ( $sidebar.offset().top > 0 ) ? $sidebar.offset().top - adminbarOffset : 0;
    9278                                        $sidebar.attr( 'style', 'top: ' + topOffset + 'px;' );
     79                                } else if ( ! bottom && windowPos + windowHeight > sidebarHeight + $sidebar.offset().top && sidebarHeight + adminbarOffset < bodyHeight ) {
     80                                        bottom = true;
     81                                        $sidebar.attr( 'style', 'position: fixed; bottom: 0;' );
    9382                                }
    94                         } else if ( ! top ) {
    95                                 top = true;
    96                                 $sidebar.attr( 'style', 'position: fixed;' );
     83                        } else if ( windowPos < lastWindowPos ) {
     84                                if ( bottom ) {
     85                                        bottom = false;
     86                                        topOffset = ( $sidebar.offset().top > 0 ) ? $sidebar.offset().top - adminbarOffset : 0;
     87                                        $sidebar.attr( 'style', 'top: ' + topOffset + 'px;' );
     88                                } else if ( ! top && windowPos + adminbarOffset < $sidebar.offset().top ) {
     89                                        top = true;
     90                                        $sidebar.attr( 'style', 'position: fixed;' );
     91                                }
     92                        } else {
     93                                top = bottom = false;
     94                                topOffset = ( $sidebar.offset().top > 0 ) ? $sidebar.offset().top - adminbarOffset : 0;
     95                                $sidebar.attr( 'style', 'top: ' + topOffset + 'px;' );
    9796                        }
     97                } else if ( ! top ) {
     98                        top = true;
     99                        $sidebar.attr( 'style', 'position: fixed;' );
    98100                }
    99101
    100102                lastWindowPos = windowPos;