J'ai créé une fonction javascript qui regarde s'il a suffisamment d'espace sur le côté droit. Si c'est le cas, il l'affichera sur le côté droit, sinon il l'affichera sur le côté gauche
Testé en:
- Firefox (mac)
- Chorme (mac)
- Safari (mac)
Javascript:
$(document).ready(function(){
//little fix for the poisition.
var newPos = $(".fixed-menuprofile .dropdown-submenu").offset().left - $(this).width();
$(".fixed-menuprofile .dropdown-submenu").find('ul').offset({ "left": newPos });
$(".fixed-menu .dropdown-submenu").mouseover(function() {
var submenuPos = $(this).offset().left + 325;
var windowPos = $(window).width();
var oldPos = $(this).offset().left + $(this).width();
var newPos = $(this).offset().left - $(this).width();
if( submenuPos > windowPos ){
$(this).find('ul').offset({ "left": newPos });
} else {
$(this).find('ul').offset({ "left": oldPos });
}
});
});
parce que je ne veux pas ajouter ce correctif sur tous les éléments de menu, j'ai créé une nouvelle classe dessus. placez le menu fixe sur ul:
<ul class="dropdown-menu fixed-menu">
J'espère que cela fonctionne pour vous.
ps. petit bug dans safari et chrome, le premier survol le placera à mutch à gauche mettra à jour ce post si je l'ai corrigé.