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