Я создал функцию javascript, которая смотрит, достаточно ли у него места с правой стороны. Если он есть, он покажет его с правой стороны, иначе он отобразит его с левой стороны
Проверено в:
- Firefox (mac)
- Chorme (Mac)
- Safari (Mac)
Javascript:
$(document).ready(function(){
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 });
}
});
});
потому что я не хочу добавлять это исправление в каждый пункт меню, я создал для него новый класс. поместите фиксированное меню на ul:
<ul class="dropdown-menu fixed-menu">
Я надеюсь, что это сработает для вас.
пс. небольшая ошибка в Safari и Chrome, при первом наведении указатель мыши переместит его в положение «mutch влево», обновит этот пост, если я исправлю его.