重新定位下拉菜单,如果窗口附近 [英] Reposition drop down menu if near edge of window

查看:116
本文介绍了重新定位下拉菜单,如果窗口附近的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用以下代码重新定位我的下拉菜单,如果它们落在浏览器窗口区域之外。但是它在Internet Explorer 7和8中不起作用。

  jQuery(document).ready(function(){$ b $每个(function(){
pos = jQuery(this).offset();
if(pos.left + 100> jQuery(window) ).width()+ window.pageXOffset-jQuery(this).width()){
jQuery(this).addClass(nav-shift);}
});
});


解决方案

window.pageXOffset 属性是 IE不支持(7和8,至少)。尝试 $(window).offset()。left 替代:

  jQuery(document).ready(function(){
jQuery(#nav> ul> li)每个(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:



<$ p $每个(function(){
var $ this(function(){
$ b jQuery(#nav> ul> li = jQuery(this),
$ win = jQuery(window);

if($ this.offset()。left + 100> $ win.width()+ $ win。 offset()。left - $ this.width()){
$ this.addClass(nav-shift);
}
});
});


I'm using the following code to reposition my drop down menus if they fall outside of the browser window area. However it does not work in Internet Explorer 7 and 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");}
});
});

解决方案

The window.pageXOffset property is not supported in IE (7 and 8, at least). Try $(window).offset().left instead:

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");}
    });
});

More readable, 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");
        }
    });
});

这篇关于重新定位下拉菜单,如果窗口附近的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆