-1

所以我有一个正在制作的megamenu,我想让它符合屏幕尺寸。当子菜单被下拉时,我不希望它离开屏幕边缘。我计划中的小问题是我不知道如何在元素对浏览器实际可见之前检测它的位置。有没有办法做到这一点?

4

5 回答 5

3

元素在浏览器可见之前没有位置

于 2012-07-02T19:56:22.310 回答
2

您可以将元素的不透明度设为 0.01,然后检查其位置。这使得普通用户可见但仍然不可见。

var offset = $(selector).show().css('opacity',0.01).offset();
$(selector).css('opacity',1).hide();
于 2012-07-02T20:00:55.667 回答
0

您可以显示元素以获取其位置并在之后隐藏它:

var element = $('#element');
element.show();
var position = element.position();
element.hide();

演示

于 2012-07-02T20:07:24.580 回答
0
var offset = $(selector).fadeTo(1, .01).offset();
$(selector).hide();
于 2012-07-02T20:10:35.667 回答
-1
if($(this).offset().left - 90 < window.screenLeft) { 
    $(this).next().css('left','0')
}
else if($(this).offset().left + $(this).outerWidth() + 90 > window.innerWidth) {
    $(this).next().css('right', '0')
}
else { 
    $(this).next().css('left', '-90px')
}
于 2012-07-02T20:12:47.173 回答