我一直在开发一个在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;
}
答案 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;