0
我有一個左側垂直CSS菜單,彈出右側的subnavs。CSS菜單Subnav顯示下方摺疊
我的問題是,最後一個菜單項有許多subnavs導致它們顯示在窗口的下方。
是否有任何方式與CSS或jQuery來檢測是否會發生這種情況,並相應地調整位置,使所有的子菜單項可以看到?
這裏是(你可能需要調整窗口高度),以我的例子鏈接:
<!--demo is at following link-->
我有一個左側垂直CSS菜單,彈出右側的subnavs。CSS菜單Subnav顯示下方摺疊
我的問題是,最後一個菜單項有許多subnavs導致它們顯示在窗口的下方。
是否有任何方式與CSS或jQuery來檢測是否會發生這種情況,並相應地調整位置,使所有的子菜單項可以看到?
這裏是(你可能需要調整窗口高度),以我的例子鏈接:
<!--demo is at following link-->
下面是使用更新的jQuery:http://jsfiddle.net/otcq2ne0/1/
$('body').on('mouseenter mouseover', '.vmdrop', function() {
var subNav = $('.vmenu-dropdown', this);
if (subNav.length) {
var pos = subNav[0].getBoundingClientRect();
if (pos.bottom > window.innerHeight) {
var threshold = pos.top;
var buffer = 10;
var diff = window.innerHeight - (pos.bottom + buffer);
if (Math.abs(diff) > threshold) {
diff = '-' + (threshold + buffer);
}
if (Math.abs(diff) > 0) {
subNav.css({ top: diff + 'px' });
}
}
}
});
太棒了!奇蹟般有效。 – 2014-10-16 15:53:24
你應該請考慮窗口中有多少高度,要顯示子菜單需要多少高度。如果它不合適,則需要以可以看到的方式重新定位子菜單。 – Guillermo 2014-10-16 15:26:06
這篇文章可能會幫助你一點點:http://stackoverflow.com/questions/9872128/get-bottom-and-right-position-of-an-element – Guillermo 2014-10-16 15:30:41