मैंने एक जावास्क्रिप्ट फ़ंक्शन बनाया है जो दिखता है कि क्या उसके पास दाईं ओर पर्याप्त जगह है। यदि उसके पास वह दाईं ओर दिखाएगा, तो वह उसे बाईं ओर प्रदर्शित करेगा
में परीक्षण किया गया:
- फ़ायरफ़ॉक्स (मैक)
- चर्मे (मैक)
- सफ़ारी (मैक)
जावास्क्रिप्ट:
$(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 });
}
});
});
क्योंकि मैं इस सुधार को हर उस मेनू आइटम पर नहीं जोड़ना चाहता जो मैंने इस पर एक नया वर्ग बनाया था। तय मेनू को उल पर रखें:
<ul class="dropdown-menu fixed-menu">
मुझे उम्मीद है कि यह आपके लिए काम करता है।
ps। सफारी और क्रोम में थोड़ा बग, पहले मंडराने के लिए इसे बाईं ओर मचाना होगा अगर मैंने इसे ठीक किया तो यह पोस्ट अपडेट कर देगा।