Foros del Web » Programando para Internet » Jquery »

iframe con height auto

Estas en el tema de iframe con height auto en el foro de Jquery en Foros del Web. Buenos días Utilizo un acordeón .jquery @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original < script type = "text/javascript" >     jQuery ( document ) ...
  #1 (permalink)  
Antiguo 27/08/2014, 08:36
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 10 meses
Puntos: 9
Pregunta iframe con height auto

Buenos días
Utilizo un acordeón .jquery

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.     jQuery(document).ready(function() {
  3.     jQuery('.bloque_activador').click(function() {
  4.     jQuery('.bloque_activador').removeClass('on');
  5.     jQuery('.accordionContent').slideUp('normal');
  6.     if(jQuery(this).next().is(':hidden') == true) {
  7.     jQuery(this).addClass('on');
  8.     jQuery(this).next().slideDown('normal');
  9.     }
  10.          
  11.      });
  12.    
  13.     jQuery('.accordionContent').mouseover(function() {
  14.     jQuery(this).addClass('over');
  15.        
  16.     }).mouseout(function() {
  17.     jQuery(this).removeClass('over');                                      
  18.     });
  19.    
  20.     jQuery('.accordionContent').hide();
  21.  
  22. });
  23. </script>

Código HTML:
Ver original
  1. <h2 class="bloque_activador" title="Nombre...">Nombre...</h2>
  2. <div class="accordionContent">
  3. <iframe src="index_1.html" height="auto" scrolling="no" frameborder="0"></iframe>
  4. </div>
  5.  
  6. <h2 class="bloque_activador" title="Nombre...">Nombre...</h2>
  7. <div class="accordionContent">
  8. <iframe src="index_2.html" height="auto" scrolling="no" frameborder="0"></iframe>
  9. </div>

El funciona bien pero con el height no.
Cada index.html tiene un alto distinto, entonces busco como darle un height auto

¿Alguna idea de como lo hago?

Gracias por su ayuda
__________________
Diseñador Gráfico publicitario
  #2 (permalink)  
Antiguo 28/08/2014, 06:45
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 10 meses
Puntos: 9
Respuesta: iframe con height auto

Buenos días
Encontré un código que se ajusta a mis necesidades pero deseo hacerle 2 cambios:

1. Quitar el setInterval
2. Que pueda cargar varios iframe

Este es el código:

Código Javascript:
Ver original
  1. <script>
  2.  jQuery(function($){
  3.   var lastHeight = 0, curHeight = 0, $frame = $('iframe:eq(0)');
  4.   setInterval(function(){
  5.     curHeight = $frame.contents().find('body').height();
  6.     if ( curHeight != lastHeight ) {
  7.       $frame.css('height', (lastHeight = curHeight) + 'px' );
  8.     }
  9.   },500);
  10. });
  11.   </script>

Gracias por su ayuda
__________________
Diseñador Gráfico publicitario
  #3 (permalink)  
Antiguo 29/08/2014, 06:05
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 10 meses
Puntos: 9
Respuesta: iframe con height auto

Hola
Sigo intentando pero no logro resolver mi problema
¿Alguien que me pueda ayudar?
__________________
Diseñador Gráfico publicitario
  #4 (permalink)  
Antiguo 23/09/2014, 10:03
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 10 meses
Puntos: 9
Respuesta: iframe con height auto

Hola retomo este tema por que no he solucionado este asunto.
PHPeros me ayudo y me paso este código:

Código Javascript:
Ver original
  1. var lastHeight = 0, curHeight = 0, $frame = $('iframe'), curHeight = $frame.contents().find('body').height();
  2.     if ( curHeight != lastHeight ) {
  3.     $frame.css('height', (lastHeight = curHeight) + 'px' );
  4.     }

Pero sucede que debo abrir en orden las pestañas del acordeón, si los abro en desorden los abre mal.

¿Qué debo agregar a este código para que me funcione bien en cualquier orden?

Gracias por su ayuda
__________________
Diseñador Gráfico publicitario
  #5 (permalink)  
Antiguo 24/09/2014, 08:12
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 10 meses
Puntos: 29
Respuesta: iframe con height auto

No entiendo nada de lo que dices. "Los abre mal" no es una descripción de un error. Lo que te han pasado en el otro foro es una función para calcular el alto en función del alto del <body> del iframe que se abre. Es un poco locura lo que estás haciendo, si quieres puedes explicarnos mejor el tema y quizás lo puedas hacer de una forma mejor y más eficiente.

Saludos.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #6 (permalink)  
Antiguo 24/09/2014, 08:33
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 11 años, 3 meses
Puntos: 578
Respuesta: iframe con height auto

A ver si puedo hacer algo...

Como son dos iframes, supongo que falla porque solo recoges el tamaño del primero. Tal vez se solucione usando .each():

Código Javascript:
Ver original
  1. var lastHeight = 0, curHeight = 0, $frame = $('iframe');
  2.  
  3. $frame.each(function(){
  4.     curHeight = this.contents().find('body').height();
  5.     if ( curHeight != lastHeight ) {
  6.         this.height(lastHeight = curHeight);
  7.     }
  8. });

  #7 (permalink)  
Antiguo 24/09/2014, 08:39
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 10 meses
Puntos: 9
Respuesta: iframe con height auto

Hola CHuLoSoY
Mira utilizo un acordeón y en cada pestaña carga un iframe, te pongo el código:

Código Javascript:
Ver original
  1. <head>
  2. <script type="text/javascript">
  3.     jQuery(document).ready(function() {
  4.    
  5.     jQuery('.bloque_activador').click(function() {
  6.     jQuery('.bloque_activador').removeClass('on');
  7.     jQuery('.accordionContent').slideUp('normal');  
  8.     if(jQuery(this).next().is(':hidden') == true) {    
  9.     jQuery(this).addClass('on');              
  10.     jQuery(this).next().slideDown('normal');
  11.     }
  12.    
  13.     //Alto auto del iframe
  14.     var lastHeight = 0, curHeight = 0, jQueryframe = jQuery('iframe'),
  15.     curHeight = jQueryframe.contents().find('body').height();
  16.     if ( curHeight != lastHeight ) {
  17.         jQueryframe.css('height', (lastHeight = curHeight) + 'px' );
  18.     }
  19.     //Fin Alto auto del iframe
  20.          
  21.      });
  22.    
  23.     jQuery('.accordionContent').mouseover(function() {
  24.     jQuery(this).addClass('over');      
  25.     }).mouseout(function() {
  26.     jQuery(this).removeClass('over');                                      
  27.     });
  28.     jQuery('.accordionContent').hide();
  29.    
  30.  
  31. });
  32. </script>
  33. </head

Y asi tengo las pestañas cada una con su iframe:

Código HTML:
Ver original
  1. <h2 class="bloque_activador">Texto...</h2>
  2. <div class="accordionContent" >
  3. <iframe src="pagina_01.html" scrolling="no" frameborder="0"></iframe>
  4. </div>
  5.  
  6. <h2 class="bloque_activador">Texto...</h2>
  7. <div class="accordionContent" >
  8. <iframe src="pagina_02.html" scrolling="no" frameborder="0"></iframe>
  9. </div>
  10.  
  11. <h2 class="bloque_activador">Texto...</h2>
  12. <div class="accordionContent" >
  13. <iframe src="pagina_03.html" scrolling="no" frameborder="0"></iframe>
  14. </div>
  15. </body>

Mira que pagina_01.html, pagina_02.html y pagina_03.html, cada una tienen una dimensión distinta.

Código Javascript:
Ver original
  1. //Alto auto del iframe
  2.     var lastHeight = 0, curHeight = 0, jQueryframe = jQuery('iframe'),
  3.     curHeight = jQueryframe.contents().find('body').height();
  4.     if ( curHeight != lastHeight ) {
  5.         jQueryframe.css('height', (lastHeight = curHeight) + 'px' );
  6.     }
  7.     //Fin Alto auto del iframe

Este código es el que me da el alto auto, pero sí navego las pestañas en desorden pestaña 3, pestaña 1 y pestaña 2 no me funciona.

¿Cómo hago para que cada height sea auto?

Nota: pagina_01.html, pagina_02.html y pagina_03.html están en mi servidor no son páginas externas.

Gracias por tu ayuda
__________________
Diseñador Gráfico publicitario
  #8 (permalink)  
Antiguo 24/09/2014, 08:56
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 10 meses
Puntos: 9
Respuesta: iframe con height auto

Hola PHPeros
Nada...;(
Otro asunto es que pueden sera 2 o más iframes.

Gracias por tu ayuda
__________________
Diseñador Gráfico publicitario
  #9 (permalink)  
Antiguo 26/09/2014, 10:49
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 10 meses
Puntos: 9
Respuesta: iframe con height auto

Encontré este código

Código Javascript:
Ver original
  1. jQuery(document).ready(function() {
  2.     var height = $(window).height();
  3.     $('iframe').css('height', height * 0.75 | 0);
  4.     });

Pero me da un alto fijo que no es auto, sobrepasa los límites.

Alguna idea para auto ajustarlo.

Gracias por su ayuda
__________________
Diseñador Gráfico publicitario
  #10 (permalink)  
Antiguo 27/09/2014, 04:06
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 11 años, 3 meses
Puntos: 578
Respuesta: iframe con height auto

Acabemos con esto de una vez

Código Javascript:
Ver original
  1. $("iframe").each(function(){
  2.    $(this).height($(this).contents().height());
  3. });

Y asegúrate de que son del mismo dominio los iframes.
  #11 (permalink)  
Antiguo 29/09/2014, 05:59
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 10 meses
Puntos: 9
Respuesta: iframe con height auto

Hola PHPeros
jejeje...que pena tanta preguntadera.
Te cuento si funciono pero en Chrome abro la primera pestaña y se ajusta bien pero si abro la segunda o cualquier pestaña el alto supera el tamaño (se baja demasiado).
Todos los iframe que cargo están en el mismo servidor yo no cargo en los iframe paginas externas.

De nuevo gracias y disculpa tanta preguntadera...;)
__________________
Diseñador Gráfico publicitario

Etiquetas: auto, height, iframe
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:20.