Je n'aime pas hoverIntent dans les nouveaux menus déroulants ou la barre d'administration; pour moi, ma page est lente.
Quel serait le moyen convivial de désactiver hoverIntent (ou de modifier ses options) dans le nouvel administrateur et la nouvelle barre d’outils Wordpress?
Le seul endroit où je vois hoverIntent dans la source de la page d'administration est ici:
<script type='text/javascript' src='http://mysite.com/wp-admin/load-scripts.php?c=1&load=admin-bar,hoverIntent,common,jquery-color,suggest,inline-edit-post,jquery-form&ver=26e0371f31adb44206d9f999828c9182'></script>
Les 2 fichiers suivants concernent l’association de hoverIntent en tant que gestionnaires de clic pour la barre et le menu, respectivement.
Barre d'administration
Le fichier admin-bar.js définit l’intention de survol sur la barre supérieure de la ligne 13 de admin-bar.js .Menu Admin
Le fichier common.js définit Hover Intent dans le menu de la barre latérale à la ligne 185 de common.js .
WordPress attache les gestionnaires hoverintent pour la barre et le menu prêts pour le document. Par conséquent, si nous voulons rapprocher ces gestionnaires de clics, nous devons nous assurer de le faire après que WordPress l'aura terminé, c'est JS Business.
Le moyen le plus simple d’assurer le chargement de notre script au bon moment consiste à déclencher une file d’attente dans l’administrateur et à définir admin-bar et common scripts en tant que dépendances.
Associez un rappel à admin_head
et déclenchez une mise en file d'attente avec les deux dépendances requises.
add_action( 'admin_head', 'disable_admin_hoverintent' );
function disable_admin_hoverintent() {
wp_enqueue_script(
// Script handle
'disable-admin-hoverintent',
// Script URL
get_bloginfo( 'stylesheet_directory' ).'/disableadminhi.js',
// Script dependancies
array( 'admin-bar', 'common' )
);
}
Créez un fichier dans le dossier de votre thème et nommez-le pour correspondre au fichier dans la file d'attente ci-dessus. Dans mon exemple, j'ai utilisé le nom disableadminhi.js
, mais vous pouvez l'ajuster et/ou recoller la file d'attente ailleurs ne voulez pas le placer dans le dossier du thème.
Javascript pour disableadminhi.js
jQuery(document).ready(function($){
$('#wpadminbar').find('li.menupop').hover( function(){
$(this).toggleClass('hover');
});
// Bring menu into scope(defined by common.js in wordpress)
var menu;
// Copy of the function from common.js, just without hoverIntent
$('li.wp-has-submenu', menu).hover(
function(e){
var b, h, o, f, m = $(this).find('.wp-submenu'), menutop, wintop, maxtop;
if ( !$(document.body).hasClass('folded') && $(this).hasClass('wp-menu-open') )
return;
menutop = $(this).offset().top;
wintop = $(window).scrollTop();
maxtop = menutop - wintop - 30; // max = make the top of the sub almost touch admin bar
b = menutop + m.height() + 1; // Bottom offset of the menu
h = $('#wpwrap').height(); // Height of the entire page
o = 60 + b - h;
f = $(window).height() + wintop - 15; // The fold
if ( f < (b - o) )
o = b - f;
if ( o > maxtop )
o = maxtop;
if ( o > 1 )
m.css({'marginTop':'-'+o+'px'});
else if ( m.css('marginTop') )
m.css({'marginTop':''});
m.addClass('sub-open');
},
function(){
$(this).find('.wp-submenu').removeClass('sub-open');
}
);
});
J'espère que cela pourra aider.. :)