Foros del Web » Programando para Internet » Javascript »

Efecto sobre texto

Estas en el tema de Efecto sobre texto en el foro de Javascript en Foros del Web. Buenas tardes Me pueden colaborar con lo siguiente por favor, he intentado varias cosas pero no doy con la idea. Como puedo generar los siguientes ...
  #1 (permalink)  
Antiguo 13/03/2012, 15:09
 
Fecha de Ingreso: noviembre-2010
Mensajes: 204
Antigüedad: 13 años, 5 meses
Puntos: 1
Efecto sobre texto

Buenas tardes

Me pueden colaborar con lo siguiente por favor, he intentado varias cosas pero no doy con la idea.

Como puedo generar los siguientes efectos en un texto:

1. Tengo un texto fijo de color verde como puedo hacer para que el color cambie de tono o color despues de un tiempo.

2. Tengo una frase que necesito que aparezca letra por letra, cuando la frase se complete, que no se repita el efecto.

Gracias por su tiempo

Isabel
  #2 (permalink)  
Antiguo 13/03/2012, 17:09
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Efecto sobre texto

Hola Isabel

Respecto a lo primero, te muestro un ejemplo que hice hace mucho. Usa jQuery + jQueryUI (este último necesario para hacer la transición de color):
http://nahueljose.com.ar/ejemplos/ef...as-con-jquery/

El efecto se hace al pasar el mouse sobre las letras.

Te dejo el código del ejemplo:
Código HTML:
Ver original
  1. <!doctype html>
  2. <title>Efecto hover sobre letras con jQuery :: Nahuel Jos&eacute; :: jQuery - HTML - CSS</title>
  3. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
  4. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js"></script>
  5. <script type="text/javascript" src="efecto-hover.js"></script>
  6. <style type="text/css">
  7.     h1{
  8.         color: black;
  9.         font-size:40px;
  10.     }
  11.     h2{
  12.         color: yellow;
  13.     }
  14. <script type="text/javascript">
  15. $(document).ready(function(){
  16.     //con las opciones por defecto
  17.     $('h1').efectoHover();
  18.    
  19.     //con opciones (se pueden especificar solo algunas si se quiere)
  20.     $('h2').efectoHover({
  21.         color: 'blue',
  22.         velocidadIn: 'slow',
  23.         velocidadOut: 'fast',
  24.         cursor: 'default'
  25.     });
  26. });
  27.  
  28. </head>
  29. <div>
  30.     <h1>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</h1>
  31.     <h2>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</h1>
  32. </div>
  33. </body>
  34. </html>

Y este es el código del plugin:
Código Javascript:
Ver original
  1. /*
  2. Autor: Nahuel José
  3. http://www.nahueljose.com.ar
  4. */
  5.  
  6. (function($){
  7.     $.fn.efectoHover = function(opciones){
  8.         //valores por defecto
  9.         var defaults = {
  10.             color: 'yellow',
  11.             velocidadIn: 100,
  12.             velocidadOut: 2000,
  13.             cursor: 'pointer'
  14.         };         
  15.         var opciones = $.extend(defaults, opciones);
  16.         $(this).each(function(){
  17.             var textEff = $(this);
  18.             var colorDef = textEff.css('color');
  19.             var splitText = textEff.text().split('');
  20.             for (var i=0; i<splitText.length; i++){
  21.                 if (splitText[i]==' '){continue;}
  22.                 splitText[i] = '<span class="hoverEffect">' + splitText[i] + '</span>';
  23.             }
  24.             nuevoHtml = splitText.join('');
  25.             textEff.html(nuevoHtml);
  26.             var letraEff = textEff.find('span.hoverEffect').css('cursor',opciones.cursor);
  27.             letraEff.mouseenter(function(){
  28.                 $(this).stop().animate({
  29.                     color: opciones.color
  30.                 }, opciones.velocidadIn);
  31.             });
  32.             letraEff.mouseout(function(){
  33.                 $(this).animate({
  34.                     color: colorDef
  35.                 }, opciones.velocidadOut);
  36.             });
  37.         });    
  38.         return false;
  39.     }; 
  40. })(jQuery);

Mirá este otro ejemplo:
Código HTML:
Ver original
  1. <!doctype html>
  2.     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  3.     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
  4.     <script type="text/javascript">
  5.         $(function(){
  6.             //configuraciones
  7.             var _elem = $('.animar-color');             //usar selector CSS para determinar los elementos a los que se aplica el efecto
  8.             var _propiedadAAnimar = 'color'             //Propiedad CSS a la que quiero animar el color
  9.             var _color_new = '#FFF000';                 //color al que quiero animar
  10.             var _interval_ = 2000;                      //tiempo de cada parpadeo
  11.             var _velocidad_ = 600;                      //duración de la animación (el doble de este valor debe ser menor al de _interval)
  12.             //..
  13.             var _color_org = _elem.css(_propiedadAAnimar);
  14.             var animI = {};
  15.             var animF = {};
  16.             animI[_propiedadAAnimar] = _color_new;
  17.             animF[_propiedadAAnimar] = _color_org;
  18.             setInterval(function(){
  19.                 _elem.animate(animI,_velocidad_,function(){
  20.                     _elem.animate(animF,_velocidad_);
  21.                 });
  22.             },_interval_);
  23.         });
  24.     </script>
  25.     <title>Efecto sobre letras</title>
  26. </head>
  27.     <h1 class="animar-color">Soy un texto</h1>
  28. </body>
  29. </html>

La diferencia es que anima cualquier cosa! Pero no letra por letra, eso lo hace el plugin anterior. Pero con el último ejemplo podés animar cualquier cosa que tenga color. El fondo de un div, bordes, texto, etc.
__________________
nahueljose.com.ar
  #3 (permalink)  
Antiguo 13/03/2012, 17:35
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Efecto sobre texto

Respecto a lo segundo, hice un ejemplo rápido para ver cómo se podría lograr :) Me pareció interesante.

Código HTML:
Ver original
  1. <!doctype html>
  2.     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  3.     <script type="text/javascript">
  4.     $(function(){
  5.         //configuraciones
  6.         var _elem       = $('.animar-entrada');     //usar selector CSS para determinar los elementos a los que se aplica el efecto
  7.         var _velocidad  = 400;                      //duración de la animación
  8.         var _demora     = 200;                      //pausa entre cada letra
  9.         //..
  10.         _elem.each(function(){
  11.             //acciones para cada elemento seleccionado
  12.             var $esto = $(this);
  13.             var arr_letras = $esto.text().split('');    //dividir el texto letra por letra
  14.             $esto.html('');                             //vaciar el html del elemento
  15.             for (var i=0; i<arr_letras.length; i++){    //encerrar cada letra en un <span> con clase especial, solo para identificarla
  16.                 arr_letras[i] = $('<span class="jq-letra">' + arr_letras[i] + '</span>').hide();    //crear el elemento y ocultarlo
  17.                 $esto.append(arr_letras[i]);                                                        //agregar elemento al texto
  18.                 arr_letras[i].delay( i * _demora ).fadeIn(_velocidad);                              //mostrar letra con efecto
  19.             }
  20.         });
  21.     });
  22.     </script>
  23.     <title>Efecto sobre letras</title>
  24. </head>
  25.     <h1 class="animar-entrada">Soy un texto</h1>
  26.     <h2 class="animar-entrada">Yo tambi&eacute;n tengo la entrada animada</h2>
  27. </body>
  28. </html>

El script es sencillo, aunque tal vez un poco absorbe CPU, así que yo no usaría textos demasiado largos, sin mencionar que es un poco molesto leer de esa forma.

Jugá con los valores de velocidad y demora para lograr otros efectos.
__________________
nahueljose.com.ar
  #4 (permalink)  
Antiguo 14/03/2012, 15:50
 
Fecha de Ingreso: noviembre-2010
Mensajes: 204
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Efecto sobre texto

Muchas gracias por tu tiempo los voy a probar y a adaptarlos a mi codigo

Gracias

Chaoo..

Etiquetas: efecto
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 14:21.