J'ai travaillé sur un site Web très gourmand en Chrome et Firefox. Il est maintenant venu à l'étape où on l'ouvre dans IE et voit WTF IE fait sur le site Web.jQuery, IE & Animate
J'ai un problème lorsque vous cliquez sur le bouton de réduction (en haut à gauche) dans l'une des fenêtres de la page. L'élément doit s'animer dans un coin et changer l'opacité, mais il change juste l'opacité et ne bouge pas. Cela fait partie d'une fonction animée incluse ci-dessous, est-ce un problème avec animer dans IE?
IE donne simplement l'erreur "Argument non valide - ligne 142 - jquery.js" (le fichier source jQuery réel) dans le débogueur.
Le site est à http://pegfm.pezcuckow.com/ et le JS est en http://pegfm.pezcuckow.com/js/main.js
La ligne IE se réfère à (142) est - selon le débogueur dans IE8
a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;
Cette fonction est celle qui est la être appelé lorsque le
/* 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')});
bouton de réduction est enfoncé (à l'intérieur d'un onReady) le CSS pour deux des fenêtres est illustré ci-dessous
.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;
}
Cela ne m'a pas aidé - il a donné lieu à la même erreur lors de l'exécution IE8. J'ai creusé dans ce plus loin à [jquery-1.5.1.min.js et IE8] (http://stackoverflow.com/questions/5303426/jquery-1-5-1-min-js-and-ie8/6449457# 6449457) et trouvé [bug jQuery # 4571] (http://bugs.jquery.com/ticket/4571) qui a été fermé comme un ne va pas réparer. Le principal à emporter est que vous ne devriez pas mettre le remplissage ou les marges à des nombres négatifs dans IE –