如果下拉菜单落在浏览器窗口区域之外,我将使用以下代码重新定位下拉菜单。但它在 Internet Explorer 7 和 8 中不起作用。
jQuery(document).ready(function(){
jQuery("#nav>ul>li").each(function() {
pos = jQuery(this).offset();
if(pos.left + 100 > jQuery(window).width()+window.pageXOffset-jQuery(this).width()) {
jQuery(this).addClass("nav-shift");}
});
});
最佳答案
window.pageXOffset
属性为 not supported in IE (至少 7 和 8)。尝试使用 $(window).offset().left
代替:
jQuery(document).ready(function(){
jQuery("#nav>ul>li").each(function() {
pos = jQuery(this).offset();
if(pos.left + 100 > jQuery(window).width()+jQuery(window).offset().left-jQuery(this).width()) {
jQuery(this).addClass("nav-shift");}
});
});
更具可读性,IMO:
jQuery(document).ready(function() {
jQuery("#nav > ul > li").each(function() {
var $this = jQuery(this),
$win = jQuery(window);
if ($this.offset().left + 100 > $win.width() + $win.offset().left - $this.width()) {
$this.addClass("nav-shift");
}
});
});
关于jquery - 如果靠近窗口边缘,则重新定位下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6293393/