Я работал над сайтом, который очень интенсивно использует jQuery в Chrome и Firefox. Теперь дело дошло до того, что его открывают в IE и видят, как WTF IE работает с сайтом.
У меня проблема при нажатии кнопки сворачивания (вверху слева) в одном из окон на странице. Элемент должен анимироваться в углу и изменять непрозрачность, однако он просто изменяет непрозрачность и не перемещается. Это часть функции animate, включенной ниже, поэтому проблема с animate в IE?
IE просто выдает ошибку «Недопустимый аргумент - строка 142 - jquery.js» (фактический исходный файл jQuery) в отладчике.
Сайт находится по адресу http://pegfm.pezcuckow.com/, а JS находится по адресу http://pegfm.pezcuckow.com/js/main.js
Строка, которую IE ссылается на (142), - согласно отладчику в IE8
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;
}