Foros del Web » Programando para Internet » Jquery »

"ver mas" o manejar overflow de texto con jquery.

Estas en el tema de "ver mas" o manejar overflow de texto con jquery. en el foro de Jquery en Foros del Web. Como se hace un contenedor de texto con un "ver mas" al estilo youtube? Siempre los hice con PHP, y en este caso quiero hacerlo ...
  #1 (permalink)  
Antiguo 09/10/2010, 14:50
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 7 meses
Puntos: 101
Pregunta "ver mas" o manejar overflow de texto con jquery.

Como se hace un contenedor de texto con un "ver mas" al estilo youtube? Siempre los hice con PHP, y en este caso quiero hacerlo con jquery.

Supongo que sería algo así:
- definir un tamaño fijo para un div
- hacer un contador de caracteres con javascript
- imprimir "ver mas" si el texto es muy largo
- utilizar .animate() para expandir el contenedor de texto.

Ustedes lo harían así?
  #2 (permalink)  
Antiguo 09/10/2010, 15:20
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 7 meses
Puntos: 101
Respuesta: "ver mas" o manejar overflow de texto con jquery.

Por ahora lo resuelvo así. Pero el efecto es un tanto "tosco":

Código Javascript:
Ver original
  1. $("div#word_description").hover(
  2.         function(){    
  3.             $(this).css({"height":"auto", "border-bottom": "3px solid #BFFFFF"});      
  4.         },
  5.         function () {
  6.             $(this).css({"height":"1em", "border": "0"});
  7.         });
  #3 (permalink)  
Antiguo 11/10/2010, 15:29
Avatar de chicohot20  
Fecha de Ingreso: mayo-2009
Mensajes: 388
Antigüedad: 15 años, 5 meses
Puntos: 43
Respuesta: "ver mas" o manejar overflow de texto con jquery.

a mi parecer el metodo slideToggle() de Jquery te funcionaria bien, no necesitas definir una altura
  #4 (permalink)  
Antiguo 12/10/2010, 08:14
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 7 meses
Puntos: 101
Respuesta: "ver mas" o manejar overflow de texto con jquery.

Gracias por ponerme en la pista. Si, eso parece ser lo que necesito. Sin embargo, se ocupa de mostrar lo que está oculto, y mi div está en cierta medida visible, por lo cual en vez de mostrar más, oculta.

Quizas deba usar .animate() o profundizar un poco más.

Como sea, aquí dejo un tutorial de como usar este efecto para un slide Up (cosa que muchos piden).

http://www.learningjquery.com/2009/0...ent-directions
  #5 (permalink)  
Antiguo 13/10/2010, 05:24
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 11 meses
Puntos: 65
Respuesta: "ver mas" o manejar overflow de texto con jquery.

solucionaste?

cual es el mostrar más de youtube que quieres?
  #6 (permalink)  
Antiguo 13/10/2010, 07:29
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 7 meses
Puntos: 101
Respuesta: "ver mas" o manejar overflow de texto con jquery.

Aün no solucioné. Por alguna razón no me funciona el animate.

Código Javascript:
Ver original
  1. $("div#word_description").hover(
  2.         function(){    
  3.             $(this).addClass("overflow").animate({"height": "auto"},1000);     
  4.         },
  5.         function () {
  6.             $(this).removeClass("overflow").animate({"height": "1em"},1000);
  7.         });

Originalmente decía poner un boton como en las descripciones de video de youtube. Pero creo que con mouseover va a ir mejor...
  #7 (permalink)  
Antiguo 13/10/2010, 13:57
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 11 meses
Puntos: 65
Respuesta: "ver mas" o manejar overflow de texto con jquery.

No sé si te sirve este, expande con clic en el título

Primero capturo el tamaño del div que contiene la descripción para saber hasta donde ampliar y para comenzar le doy una altura minima para cuando esté contraido

Código HTML:
Ver original
  1.     <title>Pruebas</title>
  2. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  3. $(function(){
  4.     alturamaxima = $('.descripcion').height() + 'px';
  5.     alturaMinima = '14px';
  6.     $('.descripcion').height(alturaMinima);
  7.     $('.contenedor .titulo').toggle( function (){
  8.         $(this).next().animate({height: alturamaxima},1000);
  9.     }, function (){
  10.         $(this).next().animate({height: alturaMinima},1000);
  11.     });
  12. });
  13.     body{font-size:12px; font-family:Arial}
  14.     .contenedor{border:1px solid #ccc; background:#E2E2E2; width:150px;}
  15.     .titulo{background:#CDCDCD; cursor:pointer}
  16.     .contenedor, .titulo, .descripcion{padding:3px}
  17.     .descripcion{background:#F0F0F0; overflow:hidden}
  18. </head>
  19.  
  20.     <div class="contenedor">
  21.         <div class="titulo">Título</div>
  22.         <div class="descripcion">Esta es una descripcion larga. Esta es una descripcion larga. Esta es una descripcion larga. Esta es una descripcion larga. Esta es una descripcion larga. TERMINO</div>
  23.     </div>
  24.  
  25. </body>
  26. </html>

Última edición por Dany_s; 13/10/2010 a las 14:03
  #8 (permalink)  
Antiguo 13/10/2010, 14:13
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 7 meses
Puntos: 101
Respuesta: "ver mas" o manejar overflow de texto con jquery.

Si, Dany! Ese es el efecto que necesitaba. En un rato lo estudio y lo aplico. Gracias!
  #9 (permalink)  
Antiguo 13/10/2010, 15:21
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 11 meses
Puntos: 65
Respuesta: "ver mas" o manejar overflow de texto con jquery.

Si tenes varios bloques, como una lista de noticias, deberias hacer un bucle para guardar las alturas iniciales de cada bloque.

El tema con el animate es que no sé como decirle que agrande hasta donde termina el contenido, como un tamaño 'auto', por eso primero rescato la altura
  #10 (permalink)  
Antiguo 13/10/2010, 16:51
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 7 meses
Puntos: 101
Respuesta: "ver mas" o manejar overflow de texto con jquery.

El animate() de jquery UI tiene opciones de tomar classes y otras cosas. Pero no quiero UI. Me quedo con el basico, que al parecer no toma "auto" como valor.

Si, tengo varios bloques. Así que mañana o luego vere de tomarles la altura al cargar la pagina. Ahora estoy muy quemado porque ando estudiando CAKEphp.

Gracias Dany!
  #11 (permalink)  
Antiguo 13/10/2010, 17:27
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 11 meses
Puntos: 65
Respuesta: "ver mas" o manejar overflow de texto con jquery.

jeje entra en illasaron.com hay un videotutorial de cakephp muy bueno
  #12 (permalink)  
Antiguo 13/10/2010, 17:29
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 7 meses
Puntos: 101
Respuesta: "ver mas" o manejar overflow de texto con jquery.

Ah! Si. Miré varios de esos videos. Son leeentos pero me sirvieron tanto como los textos. Pero bueno, de la teoría a la práctica... llevo 4 días en órbita.
  #13 (permalink)  
Antiguo 30/09/2011, 14:44
 
Fecha de Ingreso: agosto-2011
Mensajes: 37
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: "ver mas" o manejar overflow de texto con jquery.

Hola a todos

les cuento que ando muy satisfecho, pues tengo la necesidad de colocar informacion en un DIV y que parte de la misma quede oculta, y que con un boton o texto "leer mas" se expanda dicho div y se muestre el otro

entre mil busquedas llegue a esta respuesta y copie el codigo de Dany_s, luego lo modifique (una pequeñez a la que llegue a la zar) y ya mi codigo esta como lo necesito

Dany_s Gracias

Código:
    <html>
    <head>
        <title>Pruebas</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
	
    <script>
    $(function(){
        alturamaxima = $('.descripcion').height() + 'px';
		
		/*! altura cambio */
        alturaMinima = '44px';
        
		$('.descripcion').height(alturaMinima);	
        $('.contenedor .titulo').toggle( function (){
            $(this).prev().animate({height: alturamaxima},1000);
        }, function (){
            $(this).prev().animate({height: alturaMinima},1000);
		
        });
    });
    </script>
    <style>
        body{font-size:12px; font-family:Arial}

		/*! anchura */
        .contenedor{border:1px solid #ccc; background:#E2E2E2; width:150px;}
		
		
        .titulo{background:#CDCDCD; cursor:pointer }
        .contenedor, .titulo, .descripcion{padding:3px}
        .descripcion{background:#F0F0F0; overflow:hidden}
    </style>
    </head>
    <body>
     
        <div class="contenedor">
            
            <div class="descripcion">Esta es una descripcion larga. Esta es una descripcion larga. Esta es  una descripcion larga. Esta es una descripcion larga. Esta es una descripcion larga. TERMINO</div>			
		<div class="titulo">Título  </div>
			
       </div>
	   
	   
     
    </body>
    </html>
Nuevamente Gracias Dany_s

Etiquetas: manejar, overflow
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 08:38.