Tôi đã tạo một hàm javascript để xem liệu anh ta có đủ không gian ở phía bên phải không. Nếu nó có, anh ấy sẽ hiển thị nó ở bên phải, nếu không anh ấy sẽ hiển thị nó ở bên trái
Đã thử nghiệm trong:
- 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 });
}
});
});
bởi vì tôi không muốn thêm bản sửa lỗi này trên mọi mục menu mà tôi đã tạo một lớp mới trên đó. đặt menu cố định trên ul:
<ul class="dropdown-menu fixed-menu">
Tôi hy vọng công trình này ra cho bạn.
ps. lỗi nhỏ trong safari và chrome, lần đầu tiên di chuột sẽ đặt nó sang bên trái sẽ cập nhật bài đăng này nếu tôi đã sửa nó.