2010-10-20 4 views
2

Je rencontre des problèmes avec les grandes images, mais uniquement avec Chrome.Fading dans les grandes images dans Chrome

est ici la configuration de base absolument:

$(document).ready(function(){ 
    var img = new Image(); 
    $(img) 
     .hide() 
     .load(function(){ 
     $(this).fadeIn(3000) 
     }) 
     .attr("src", "files/originals/01.jpg") 
    $("body").append(img) 
}); 

Pour autant que je sais que c'est la façon traditionnelle pour créer une image à la volée, le charger et fadeIn quand il est fait le chargement. Maintenant, cela fonctionne parfaitement dans FireFox, Safari et même IE, mais pas dans Chrome lorsque j'utilise de grandes images (résolutions supérieures à 1900x1200). Et avant que quelqu'un flammes sur la taille, je devrais ajouter que c'est une exigence pour le projet. Qu'est-ce qui se passe dans tous les navigateurs, mais Chrome est qu'il y a un délai pendant le chargement de l'image (attendue) et dès qu'il est fait. Dans Chrome, je reçois le délai normal pendant le chargement de l'image, puis un autre retard durée du fadeIn (dans mon exemple 3000ms) après quoi l'image "apparaît" simplement comme si j'utilisais show(). De plus petites images fonctionnent parfaitement dans tous les navigateurs.

Ce qui donne? Qu'est-ce qu'il me manque?

+0

J'ai essayé votre code avec FF, IE et Chrome et tout fonctionne très bien pour moi. Jetez un oeil [ici] (http://jsfiddle.net/xaUTj/) et essayez-le. J'ai mis en place votre fonction, la solution betamax et une autre petite variation de moi. Le chargement de l'image pourrait prendre un moment. C'est 2mb et est chargé de imageshack. – Andreas

+0

Pareil pour moi. Peut-être un problème avec l'ordinateur d'Alexander? – betamax

+0

Hmm, ça pourrait être quelque chose avec l'ordinateur, parce que quand j'ai essayé mon propre code encore ce matin ça a marché! Effacer le cache et tout et n'a pas pu recréer le problème. Merci à vous deux pour l'aide! –

Répondre

2

Peut-être essayer de déplacer l'insertion de l'image dans le DOM une fois qu'il a été chargé? Comme ceci:

$(document).ready(function(){ 
    var img = new Image(); 
    $(img) 
     .hide() 
     .load(function(){ 
     $("body").append(this); 
     $(this).fadeIn(3000); 
     }) 
     .attr("src", "files/originals/01.jpg") 
}); 
Questions connexes