Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/06/2009, 03:16
Avatar de Azrael666
Azrael666
 
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 6 meses
Puntos: 1
Problema en modificación shadowbox

Estoy realizando una modificación en el codigo del lightbox "shadowbox".

Enlace: http://www.shadowbox-js.com/
Enlace concreto a las demos: http://www.shadowbox-js.com/index.html#lgimage-demo (abris en "Large Image" la tercera: "Draggable" para ver lo que os explico a continuacion)

Explico un poco por encima porque uso el shadowbox y la modificacion que quiero hacer:

1- Aparte de lo tipico de los lightbox de abrir imagenes, webs, flash, etc en un popup no intrusivo, permite abrir imagenes a todo su tamaño (sin redimensionarlas) y da la posibilida de moverlas dentro de ese popup, es bastante util para mapas, que es para lo que lo quiero usar yo.

2- La modificacion que quiero hacer es que al abrirse se ponga en un punto concreto de la imagen, es decir, normalmente la abre ajustandola arriba y a la izquierda, lo que quiero es que la ajuste a una posicion X,Y que yo le doy, para que se abra en una parcela concreta del mapa.


La modificacion ya la tengo hecha (por si os lo descargais, modifiqué los ficheros shadowbox.js y players/shadowbox-img.js) y funciona, pero solo metiendole los parametros en el shadowbox.js aqui:


Código PHP:
// (linea 972)
//setDimensions: function(height, width, max_h, max_w, tb, lr, resizable){
setDimensions: function(heightwidthmax_hmax_wtblrresizable,TOP,LEFT){
            var 
height parseInt(height),
                
width parseInt(width),
                
pad parseInt(S.options.viewportPadding) || 0;

            
// CODIGO QUE NO VIENE A CUENTO PARA LO QUE PREGUNTO, POR AQUI POR EL MEDIO
            
            // update Shadowbox.dimensions
            
S.dimensions = {
                
height:     tb,
                
width:      lr,
                
inner_h:    h,
                
inner_w:    w,
                
top:        (max_h - (extra_h)) / pad,
                
left:       (max_w - (extra_w)) / pad,
                
oversized:  oversized,
                
resize_h:   resize_h,
                
resize_w:   resize_w,
                
               
//inner_t: TOP, inner_l: LEFT  //NO FUNCIONA, NO LOS RECOJE
                
        
inner_t: -800inner_l: -900   //AQUI LE PASARÍA LOS PARAMETROS

            
};
            return 
S.dimensions;
        }, 
Pasandole esos inner_t e inner_l funciona como yo quiero que lo haga, pero lo que quiero es que funcione pasandole los parametros por el enlace, asi:

<a href='mapagrande.jpg' title='Mapa'
rel="shadowbox;top=-800;left=-900;options={handleOversize:'drag'}">


este es el ejemplo que funciona y que ponen en la web para poner el tamaño al popup:
<a href="mymovie.swf" rel="shadowbox;height=140;width=120">My Movie</a>

Bueno.. despues de todo el rollo la pregunta es: ¿Cómo puedo pasarle esos parametros top y left para usarlos, o como hacer que los capture el codigo y lleguen al inner_t e inner_l?

Supongo que será facil, pero es que a mi no me sale y llevo 2 dias pegandome con ello y no hay manera


A ver si me podeis echar una mano, no creo que haga falta que ponga el resto de modificaciones porque no influyen, con los valores desde el codigo funciona bien, solo me falta eso, el que coja los valores desde el rel="..."

Un saludo.
__________________
ALOZORRO v5.0 (ahora en .es)

Última edición por Azrael666; 14/06/2009 a las 03:21