2011-07-14 37 views

Respuesta

3

Este es el código que utilizan

$("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH/2),10) + 'px', width: TB_WIDTH + 'px'}); 
    if (!(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6 
     $("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT/2),10) + 'px'}); 
    } 

para que pueda utilizar el mismo con un ligero cambio (suponiendo que el uso de una versión moderna de jQuery) ..

$('#yourbutton').click(function() { 
    var TB_WIDTH = 100, 
     TB_HEIGHT = 100; // set the new width and height dimensions here.. 
    $("#TB_window").animate({ 
     marginLeft: '-' + parseInt((TB_WIDTH/2), 10) + 'px', 
     width: TB_WIDTH + 'px', 
     height: TB_HEIGHT + 'px', 
     marginTop: '-' + parseInt((TB_HEIGHT/2), 10) + 'px' 
    }); 
}); 

Demostración en http://jsfiddle.net/gaby/rrH8q/

+0

intenté en ambos sentidos como publicado, pero no funcionó para mí. – MUS

+0

@Umar ¿puedes publicar una versión en vivo? (* ¿Estás usando este thickbox: http://jquery.com/demo/thickbox/? *), Además, tuve un error de sintaxis allí ... intente de nuevo con el código actualizado ... –

+0

muchas gracias funcionó. – MUS

0

Adjunte un controlador de evento click a dicha pestaña que cambia las dimensiones y los márgenes de TB_Window para centrarlo de nuevo, p.

$("#tab").click(function() { 
    $("#TB_window").css("height", newHeight); 
    $("#TB_window").css("width", newWidth); 
    $("#TB_window").css("margin-top", ($(window).height()-newHeight)/2); 
    $("#TB_window").css("margin-left", ($(window).width()-newWidth)/2); 
}); 
+0

gracias por su respuesta, pero no su trabajo. – MUS

+0

No hice lo que @Gaby hizo, que fue mirar su código de cambio de tamaño, es mejor, aunque el mío podría hacer algo ... – nwellcome

0

Una pequeña corrección en Gaby también conocido como la respuesta de G. Petrioli emergente de modo que debe establecer los márgenes también correctamente:

var TB_WIDTH = 500, TB_HEIGHT = 400; 
// set the new width and height dimensions here.. 
$("#TB_window").animate({marginLeft: '"'+parseInt((($vitjs(window).width()-TB_WIDTH)/2),10) 
+ 'px"', width: TB_WIDTH + 'px', height: TB_HEIGHT + 'px',marginTop:'"'+parseInt((($vitjs(window).height()-TB_HEIGHT)/2),10) + 
'px"'}); 
+0

¿qué es $ vitjs en tu ejemplo? – user387990

+0

Se usa en lugar de $ para evitar conflictos ... Pero no tiene nada que ver con el código anterior ... así que simplemente puede usar $ en lugar de $ vitjs ..... – Vitmaj

0

hice algo como esto. Esto debe reiniciarse si se cambia el tamaño del wiewport mientras la ventana emergente está abierta.

function tb_position() { 
 

 
if(TB_WIDTH > $(window).width()) 
 
{ 
 
\t $("#TB_window").css({marginLeft: 0, width: '100%', left: 0, top:0, height:'100%'}); 
 
\t $("#TB_ajaxContent, #TB_iframeContent").css({width: '100%'}); 
 
\t $("#TB_closeWindowButton").css({fontSize: '24px', marginRight: '5px'}); 
 
} 
 
else 
 
    $("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH/2),10) + 'px', width: TB_WIDTH + 'px'}); 
 
}

0

Usted tiene que incluir esto dentro de una setTimeout para que esto se hará después de abrir la thickbox, no cuando el botón está clic. Por lo general, ocurre entre "Hacer clic en el botón" y "Abrir la caja gruesa".

var TB_WIDTH = jQuery(window).width() > 400 ? 400 : jQuery(window).width(), 
 
    TB_HEIGHT = 400; // set the new width and height dimensions here.. 
 

 
setTimeout(function() { 
 
    jQuery("#TB_window").css({ 
 
    marginLeft: '-' + parseInt((TB_WIDTH/2), 10) + 'px', 
 
    width: TB_WIDTH + 'px', 
 
    height: TB_HEIGHT + 'px', 
 
    marginTop: '-' + parseInt((TB_HEIGHT/2), 10) + 'px' 
 
    }); 
 
}, 0);

Cuestiones relacionadas