2012-09-10 42 views
11

Me gustaría saber cómo puedo agregar más de un título (por ejemplo, un título o un enlace) a la fancybox. Soy consciente de que si agrego un título = "Bla" aparecerá en el cuadro. Pero si agrego algo como caption = "Blabla" al enlace de mi imagen, ¿qué código necesito tener en jquery.fancybox.js para obtener esa etiqueta de título?Fancybox: Agregar título y otras cosas

+1

posible duplicado de [Fancybox 2 títulos personalizados y subtítulos \ [de A (título) e IMG (alt \]] (http://stackoverflow.com/questions/9058442/fancybox-2-custom-titles-and- captions-from-atitle-and-imgalt) – Ankur

Respuesta

27

No necesita meterse con el archivo original jquery.fancybox.js ya que podría agregar esta opción dentro de su propia secuencia de comandos personalizada de fancybox.

Si está utilizando HTML5 DOCTYPE, se puede utilizar el atributo data-* para que muestre texto para que pueda tener este código HTML:

<a class="fancybox" href="images/01.jpg" data-caption="This is the caption" >Open fancybox</a> 

asentando después la secuencia de comandos FancyBox personalizada y obtener el data-caption mediante la devolución de llamada beforeShow como

$(document).ready(function() { 
$('.fancybox').fancybox({ 
    beforeShow : function(){ 
    this.title = $(this.element).data("caption"); 
    } 
}); 
}); // ready 

Eso anulará el title y usará el data-caption en su lugar.

Por otro lado, es posible que desee mantener el atributo title y construir de title la FancyBox combinando ambos, title y data-caption atributos así, por este código HTML

<a class="fancybox" href="images/01.jpg" title="This is the title" data-caption="This is the caption">Open fancybox</a> 

Usar este comando de

$(document).ready(function() { 
$('.fancybox').fancybox({ 
    beforeShow : function(){ 
    this.title = this.title + " - " + $(this.element).data("caption"); 
    } 
}); 
}); // ready 

Además, también puede obtener el caption/title de otro elemento HTML dentro de su documento (un <div> por ejemplo) que puede tener enlaces u otros er elementos HTML. Compruebe estos mensajes para los ejemplos de código: https://stackoverflow.com/a/9611664/1055987 y https://stackoverflow.com/a/8425900/1055987

NOTA: esto es para FancyBox v2.0.6 +

+0

¡Gracias, eso ayudó mucho! – Jean

+0

Solución perfecta y perfecta. ¡Gracias! –

+0

@JFK ¿Hay alguna forma de mantener/mantener el texto visible? En mi entorno, los títulos desaparecen después de un tiempo segundos. –

8

vieja pregunta, pero gracias a la respuesta de JFK descubrí que con la última versión de fancybox que pueda agregue un título simplemente ingresando un valor en el atributo title="" (de manera predeterminada). Solo asegúrese de que esté incluido en el elemento <a> con la clase fancybox.

+0

Gracias, esta es la primera vez que he leído para incluirlo con el enlace. – tehlivi

+0

Me alegro de poder ayudar @tehlivi –

+1

Esto debería ser ahora el respuesta aceptada. Desafortunadamente OP ha sido M.I.A. Desde el 2013. – Mike

Cuestiones relacionadas