Changeset 29770
- Timestamp:
- 09/26/2014 11:01:52 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-admin/js/common.js
r29518 r29770 176 176 menu = $('#adminmenu'), 177 177 pageInput = $('input.current-page'), 178 currentPage = pageInput.val(); 178 currentPage = pageInput.val(), 179 isIOS = /iPhone|iPad|iPod/.test( navigator.userAgent ), 180 isAndroid = navigator.userAgent.indexOf( 'Android' ) !== -1; 179 181 180 182 // when the menu is folded, make the fly-out submenu header clickable … … 225 227 if ( 'ontouchstart' in window || /IEMobile\/[1-9]/.test(navigator.userAgent) ) { // touch screen device 226 228 // iOS Safari works with touchstart, the rest work with click 227 mobileEvent = /Mobile\/.+Safari/.test(navigator.userAgent)? 'touchstart' : 'click';229 mobileEvent = isIOS ? 'touchstart' : 'click'; 228 230 229 231 // close any open submenus when touch/click is not on the menu … … 283 285 } 284 286 285 menu.find('li.wp-has-submenu').hoverIntent({ 286 over: function() { 287 var b, h, o, f, m = $(this).find('.wp-submenu'), menutop, wintop, maxtop, top = parseInt( m.css('top'), 10 ); 288 289 if ( isNaN(top) || top > -5 ) { // meaning the submenu is visible 290 return; 291 } 292 287 if ( ! isIOS && ! isAndroid ) { 288 menu.find('li.wp-has-submenu').hoverIntent({ 289 over: function() { 290 var b, h, o, f, m = $(this).find('.wp-submenu'), menutop, wintop, maxtop, top = parseInt( m.css('top'), 10 ); 291 292 if ( isNaN(top) || top > -5 ) { // meaning the submenu is visible 293 return; 294 } 295 296 if ( menu.data('wp-responsive') ) { 297 // The menu is in responsive mode, bail 298 return; 299 } 300 301 menutop = $(this).offset().top; 302 wintop = $(window).scrollTop(); 303 maxtop = menutop - wintop - 30; // max = make the top of the sub almost touch admin bar 304 305 b = menutop + m.height() + 1; // Bottom offset of the menu 306 h = $('#wpwrap').height(); // Height of the entire page 307 o = 60 + b - h; 308 f = $(window).height() + wintop - 15; // The fold 309 310 if ( f < (b - o) ) { 311 o = b - f; 312 } 313 314 if ( o > maxtop ) { 315 o = maxtop; 316 } 317 318 if ( o > 1 ) { 319 m.css('margin-top', '-'+o+'px'); 320 } else { 321 m.css('margin-top', ''); 322 } 323 324 menu.find('li.menu-top').removeClass('opensub'); 325 $(this).addClass('opensub'); 326 }, 327 out: function(){ 328 if ( menu.data('wp-responsive') ) { 329 // The menu is in responsive mode, bail 330 return; 331 } 332 333 $(this).removeClass('opensub').find('.wp-submenu').css('margin-top', ''); 334 }, 335 timeout: 200, 336 sensitivity: 7, 337 interval: 90 338 }); 339 340 menu.on('focus.adminmenu', '.wp-submenu a', function(e){ 293 341 if ( menu.data('wp-responsive') ) { 294 342 // The menu is in responsive mode, bail … … 296 344 } 297 345 298 menutop = $(this).offset().top; 299 wintop = $(window).scrollTop(); 300 maxtop = menutop - wintop - 30; // max = make the top of the sub almost touch admin bar 301 302 b = menutop + m.height() + 1; // Bottom offset of the menu 303 h = $('#wpwrap').height(); // Height of the entire page 304 o = 60 + b - h; 305 f = $(window).height() + wintop - 15; // The fold 306 307 if ( f < (b - o) ) { 308 o = b - f; 309 } 310 311 if ( o > maxtop ) { 312 o = maxtop; 313 } 314 315 if ( o > 1 ) { 316 m.css('margin-top', '-'+o+'px'); 317 } else { 318 m.css('margin-top', ''); 319 } 320 321 menu.find('li.menu-top').removeClass('opensub'); 322 $(this).addClass('opensub'); 323 }, 324 out: function(){ 346 $(e.target).closest('li.menu-top').addClass('opensub'); 347 }).on('blur.adminmenu', '.wp-submenu a', function(e){ 325 348 if ( menu.data('wp-responsive') ) { 326 349 // The menu is in responsive mode, bail … … 328 351 } 329 352 330 $(this).removeClass('opensub').find('.wp-submenu').css('margin-top', ''); 331 }, 332 timeout: 200, 333 sensitivity: 7, 334 interval: 90 335 }); 336 337 menu.on('focus.adminmenu', '.wp-submenu a', function(e){ 338 if ( menu.data('wp-responsive') ) { 339 // The menu is in responsive mode, bail 340 return; 341 } 342 343 $(e.target).closest('li.menu-top').addClass('opensub'); 344 }).on('blur.adminmenu', '.wp-submenu a', function(e){ 345 if ( menu.data('wp-responsive') ) { 346 // The menu is in responsive mode, bail 347 return; 348 } 349 350 $(e.target).closest('li.menu-top').removeClass('opensub'); 351 }); 353 $(e.target).closest('li.menu-top').removeClass('opensub'); 354 }); 355 } 352 356 353 357 // Move .updated and .error alert boxes. Don't move boxes designed to be inline.
Note: See TracChangeset
for help on using the changeset viewer.