A ver, otro problema, esta vez, como no, con IE...
El código ha quedado así:
Código:
var $disp = $('#pf-display'),
pf = $(this).attr('id'),
dir = './portfolio.html #display-' + pf;
if($disp.is(':visible')){
$disp.slideUp(400); // Ocultar el anterior si es visible
// Si haces click sobre uno distinto al actual. Cargar los detalles
if(pf !== 'pf3' && !$disp.find('div#display-' + pf).length){
setTimeout(function(){
$disp.load(dir);
$disp.slideDown(600, 'swing');
}, 400);
}
}
else if(pf !== 'pf3'){
$disp.load(dir, function(){
$disp.slideDown(600, 'swing');
});
}
Eso es el evento click, no le hagáis caso a lo de pf3 porque es de una capa que tengo provisional e ira fuera a poder ser pronto. Asi que seria eso sin las comprobaciones de esa capa.
El problema es que en IE no funciona, en el 9 le doy y se queda ahi tonto, para que me muestre algo tengo que abrir las herramientas de desarrollo (F12) y aparece del tirón, sin animación ni nada. En IE7 y 8 hace como si se abriera la capa pero no se ve nada, como si fuera una capa transparente del triple del tamaño real de esa capa.
Estoy harto de buscar y no encuentro nada. Algún fallo para IE7 como que la capa tiene que ser relative y añadir 'zoom: 1', pero que va. Indicar la altura de la capa, que es dinámica y no lo tiene. Pero nada, no hay manera. No se si es el .load u otra cosa o la animación.
¿Alguna sugerencia?
Gracias.
EDIT: edito para comentar que no es del load, o al menos no al 100%. He probado con una capa de contenido fijo y no hay animación, simplemente aparece y desaparece de golpe, como si fuera show y hide en vez de slideUp/Down. Eso si, hay un tiempo como de espera. Como si estuviese haciendo la animación pero no la hace.