ฉันได้สร้างฟังก์ชันจาวาสคริปต์ที่ดูว่าเขามีที่ว่างทางด้านขวาเพียงพอหรือไม่ ถ้ามีเขาจะแสดงทางด้านขวามิฉะนั้นเขาจะแสดงทางด้านซ้าย
ผ่านการทดสอบใน:
- Firefox (Mac)
 
- Chorme (แม็ค)
 
- ซาฟารี (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">
ฉันหวังว่าสิ่งนี้จะได้ผลสำหรับคุณ
ปล. ข้อผิดพลาดเล็ก ๆ น้อย ๆ ในซาฟารีและโครเมี่ยมการวางเมาส์ครั้งแรกจะวางไว้ที่ด้านซ้ายจะอัปเดตโพสต์นี้หากฉันแก้ไข