jQuery,IE&活跃

时间:2010-01-27 20:22:35

标签: jquery internet-explorer jquery-animate

我一直在开发一个在Chrome和Firefox中非常jQuery密集的网站。它现在进入了一个阶段,在IE中打开它,看到WTF IE正在对网站做。

单击页面上某个窗口中的最小化按钮(左上角)时出现问题。该项目应设置为角落的动画并更改不透明度,但它只会更改不透明度并且不会移动。这是下面包含的动画功能的一部分,所以它是IE中动画的问题吗?

IE只是在调试器中给出错误“无效的争论 - 第142行 - jquery.js”(实际的jQuery源文件)。

网站位于http://pegfm.pezcuckow.com/,JS位于http://pegfm.pezcuckow.com/js/main.js

根据IE8中的调试器,IE引用的行(142)是

a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;

此功能是按下最小化按钮(在准备就绪内)时调用的功能

/* Minimize Windows */
    function windowm(id) {
        var left, right, top, bottom;
        if(id == "chat") { 
            shown = chat;
            if(chat==1) { chat = 3; } else { chat = 1; }
        } else if(id == "rplayed") { 
            shown = rplayed;
            if(rplayed==1) { rplayed = 3; } else { rplayed = 1; }
        } else if(id == "info") { 
            shown = info;
            if(info==1) { info = 3; } else { info = 1; }
        } else if(id == "player") { 
            shown = player;
            if(player==1) { player = 3; } else { player = 1; }
        }

        wid = "#" + id;
        bid = "#b_" + id;
        if(shown==3) { dir = "+"; opacity = 1; } else { dir = "-"; opacity = 0.1; }
        amt = '=70%';
        if(id == "chat") { 
            right = dir + amt;
            top = dir + amt;
        } else if(id == "rplayed") { 
            left = dir + amt;
            top = dir + amt;
        } else if(id == "info") { 
            right = dir + amt;
            bottom = dir + amt;
        } else if(id == "player") { 
            left = dir + amt;
            bottom = dir + amt;
        }
        $(wid).animate({
            opacity: opacity,
            left: left,
            top: top,
            bottom: bottom,
            right: right
        }, 200);
        $(bid).fadeToggle("fast");
    }

    $("#info .minus").click(function(){windowm('info')});
    $("#chat .minus").click(function(){windowm('chat')});
    $("#rplayed .minus").click(function(){windowm('rplayed')});
    $("#player .minus").click(function(){windowm('player')});

两个窗口的CSS如下所示

.window {
    position: absolute;
    width: 394px;
    height: 262px;
    background-image:url(../images/bg_window.png);
    z-index:3;
    display: none;
}
#rplayed {
    left: 50%;
    top: 50%;
    margin-left: -197px;
    margin-top: -131px;
    z-index: 3;
    overflow:hidden;
}
#info {
    bottom: 50%;
    right: 50%; 
    margin-right: -197px;
    margin-bottom: -131px;
    z-index: 2; 
}

2 个答案:

答案 0 :(得分:2)

尝试将该行更改为:

a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now||0):a.now)+a.unit;

答案 1 :(得分:0)

更改为:

a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now=0):a.now=0)+a.unit;