mirror of
https://github.com/danpros/htmly.git
synced 2026-04-19 20:16:22 +05:30
parent
4081319e52
commit
2bd83e443c
2 changed files with 21 additions and 63 deletions
|
|
@ -77,9 +77,11 @@
|
|||
} )();
|
||||
|
||||
/**
|
||||
* @summary Add or remove ARIA attributes.
|
||||
* Add or remove ARIA attributes.
|
||||
*
|
||||
* Uses jQuery's width() function to determine the size of the window and add
|
||||
* the default ARIA attributes for the menu toggle if it's visible.
|
||||
*
|
||||
* @since Twenty Fifteen 1.1
|
||||
*/
|
||||
function onResizeARIA() {
|
||||
|
|
@ -95,71 +97,29 @@
|
|||
}
|
||||
|
||||
// Sidebar scrolling.
|
||||
function resize() {
|
||||
windowWidth = $window.width();
|
||||
|
||||
if ( 955 > windowWidth ) {
|
||||
top = bottom = false;
|
||||
$sidebar.removeAttr( 'style' );
|
||||
}
|
||||
}
|
||||
|
||||
function scroll() {
|
||||
var windowPos = $window.scrollTop();
|
||||
|
||||
if ( 955 > windowWidth ) {
|
||||
return;
|
||||
}
|
||||
|
||||
sidebarHeight = $sidebar.height();
|
||||
windowHeight = $window.height();
|
||||
bodyHeight = $body.height();
|
||||
|
||||
if ( sidebarHeight + adminbarOffset > windowHeight ) {
|
||||
if ( windowPos > lastWindowPos ) {
|
||||
if ( top ) {
|
||||
top = false;
|
||||
topOffset = ( $sidebar.offset().top > 0 ) ? $sidebar.offset().top - adminbarOffset : 0;
|
||||
$sidebar.attr( 'style', 'top: ' + topOffset + 'px;' );
|
||||
} else if ( ! bottom && windowPos + windowHeight > sidebarHeight + $sidebar.offset().top && sidebarHeight + adminbarOffset < bodyHeight ) {
|
||||
bottom = true;
|
||||
$sidebar.attr( 'style', 'position: fixed; bottom: 0;' );
|
||||
}
|
||||
} else if ( windowPos < lastWindowPos ) {
|
||||
if ( bottom ) {
|
||||
bottom = false;
|
||||
topOffset = ( $sidebar.offset().top > 0 ) ? $sidebar.offset().top - adminbarOffset : 0;
|
||||
$sidebar.attr( 'style', 'top: ' + topOffset + 'px;' );
|
||||
} else if ( ! top && windowPos + adminbarOffset < $sidebar.offset().top ) {
|
||||
top = true;
|
||||
$sidebar.attr( 'style', 'position: fixed;' );
|
||||
}
|
||||
} else {
|
||||
top = bottom = false;
|
||||
topOffset = ( $sidebar.offset().top > 0 ) ? $sidebar.offset().top - adminbarOffset : 0;
|
||||
$sidebar.attr( 'style', 'top: ' + topOffset + 'px;' );
|
||||
}
|
||||
} else if ( ! top ) {
|
||||
top = true;
|
||||
$sidebar.attr( 'style', 'position: fixed;' );
|
||||
}
|
||||
|
||||
lastWindowPos = windowPos;
|
||||
}
|
||||
|
||||
function resizeAndScroll() {
|
||||
resize();
|
||||
scroll();
|
||||
var windowPos = $window.scrollTop(),
|
||||
windowHeight = $window.height(),
|
||||
sidebarHeight = $sidebar.height(),
|
||||
pageHeight = $( '#page' ).height();
|
||||
|
||||
if ( 955 < $window.width() && pageHeight > sidebarHeight && ( windowPos + windowHeight ) >= sidebarHeight ) {
|
||||
$sidebar.css({
|
||||
position: 'fixed',
|
||||
bottom: sidebarHeight > windowHeight ? 0 : 'auto'
|
||||
});
|
||||
} else {
|
||||
$sidebar.css('position', 'relative');
|
||||
}
|
||||
}
|
||||
|
||||
$( document ).ready( function() {
|
||||
$( function() {
|
||||
$body = $( document.body );
|
||||
$window = $( window );
|
||||
$sidebar = $( '#sidebar' ).first();
|
||||
adminbarOffset = $( '#toolbar' ).height();
|
||||
|
||||
$window
|
||||
.on( 'scroll.twentyfifteen', scroll )
|
||||
.on( 'scroll.twentyfifteen', resizeAndScroll )
|
||||
.on( 'load.twentyfifteen', onResizeARIA )
|
||||
.on( 'resize.twentyfifteen', function() {
|
||||
clearTimeout( resizeTimer );
|
||||
|
|
@ -168,9 +128,7 @@
|
|||
} );
|
||||
$sidebar.on( 'click.twentyfifteen keydown.twentyfifteen', 'button', resizeAndScroll );
|
||||
|
||||
resizeAndScroll();
|
||||
|
||||
for ( var i = 1; i < 6; i++ ) {
|
||||
for ( var i = 0; i < 6; i++ ) {
|
||||
setTimeout( resizeAndScroll, 100 * i );
|
||||
}
|
||||
} );
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue