Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Slide de noticias, una ayudita porfa

Estas en el tema de Slide de noticias, una ayudita porfa en el foro de Frameworks JS en Foros del Web. Saludos cordiales, no estoy muy seguro si debería publicar esto aquí o en la parte de Js, por favor si estoy mal les rogaría mover ...
  #1 (permalink)  
Antiguo 06/04/2012, 11:24
 
Fecha de Ingreso: agosto-2010
Mensajes: 44
Antigüedad: 14 años, 3 meses
Puntos: 4
Slide de noticias, una ayudita porfa

Saludos cordiales, no estoy muy seguro si debería publicar esto aquí o en la parte de Js, por favor si estoy mal les rogaría mover el post ....

El asunto es el siguiente ... desde hace mucho buscaba el scrip para incluir a mi sitio el tan deseado "Slide" para noticias ... pero de texto, no de imágenes. Ese tipo marquesina pero q a diferencia de usar <MARQUEE> y hacer pasar el texto como si se trataran de los títulos o créditos de una película, realice barridos por párrafos ..

Bueno me topé con este script, es cual está muy interesante y pueden verlo y descargarlo del siguiente sitio ... http://www.jugbit.com/jquery-vticker-vertical-news-ticker/ .. incluso hay un ejemplo para ver como trabaja ... http://www.jugbit.com/jquery/vticker.php

Ahora bién ... la explicación de como utilizarlo se ve q tan solo hay q declarar una .clase la cual luego se llama desde la etiqueta <div class"LA_CLASE"> ... y listo .. todo de 10 .....

Lo lamentable es q por mas FACIL q parece .. no me doy cuenta y no se como poder utilizar y aplicar este script en mi sitio ... ¿dónde declaro la .CLASE? .. en el Js?? .. en el código HTML entre las etiquetas <script type></script>??

Lo q hice hasta ahora fue descargar el escript .... luego lo coloqué dentro del directorio de mi sitio en una carpeta llamada js

En el código HTML hago la llamada al archivo js de la siguiente manera: <script type="text/javascript" src="js/jquery.vticker.js"></script>

y hasta ahí llego ... pos no se donde o como hacer la declaracion de la famosa clase .. se supone q en el código html se aplicaría así

Código HTML:
Ver original
  1. <div class"LA_CLASE_A_DECLARAR">
  2. <ul>
  3. <li>TEXTO INFORMATIVO NRO 1</li>
  4. <li>OTRO TEXTO INFORMATIVO</li>
  5. </ul>
  6. </div>

en fin espero q me puedan dar una ayuda ... creo q es cuestion de dos líneas y asunto solucionado .. pero no se donde, como ... jejeje .. Gracias anticipadas ...
de todas formas adjunto el código Js, q como indiqué antes pueden descargarlo --

Código Javascript:
Ver original
  1. /*
  2. * vertical news ticker
  3. * Tadas Juozapaitis ( kasp3rito [eta] gmail (dot) com )
  4. * http://www.jugbit.com/jquery-vticker-vertical-news-ticker/
  5. */
  6. (function($){
  7. $.fn.vTicker = function(options) {
  8.     var defaults = {
  9.         speed: 700,
  10.         pause: 4000,
  11.         showItems: 3,
  12.         animation: '',
  13.         mousePause: true,
  14.         isPaused: false,
  15.         direction: 'up',
  16.         height: 0
  17.     };
  18.  
  19.     var options = $.extend(defaults, options);
  20.  
  21.     moveUp = function(obj2, height, options){
  22.         if(options.isPaused)
  23.             return;
  24.        
  25.         var obj = obj2.children('ul');
  26.        
  27.         var clone = obj.children('li:first').clone(true);
  28.        
  29.         if(options.height > 0)
  30.         {
  31.             height = obj.children('li:first').height();
  32.         }      
  33.        
  34.         obj.animate({top: '-=' + height + 'px'}, options.speed, function() {
  35.             $(this).children('li:first').remove();
  36.             $(this).css('top', '0px');
  37.         });
  38.        
  39.         if(options.animation == 'fade')
  40.         {
  41.             obj.children('li:first').fadeOut(options.speed);
  42.             if(options.height == 0)
  43.             {
  44.             obj.children('li:eq(' + options.showItems + ')').hide().fadeIn(options.speed).show();
  45.             }
  46.         }
  47.  
  48.         clone.appendTo(obj);
  49.     };
  50.    
  51.     moveDown = function(obj2, height, options){
  52.         if(options.isPaused)
  53.             return;
  54.        
  55.         var obj = obj2.children('ul');
  56.        
  57.         var clone = obj.children('li:last').clone(true);
  58.        
  59.         if(options.height > 0)
  60.         {
  61.             height = obj.children('li:first').height();
  62.         }
  63.        
  64.         obj.css('top', '-' + height + 'px')
  65.             .prepend(clone);
  66.            
  67.         obj.animate({top: 0}, options.speed, function() {
  68.             $(this).children('li:last').remove();
  69.         });
  70.        
  71.         if(options.animation == 'fade')
  72.         {
  73.             if(options.height == 0)
  74.             {
  75.                 obj.children('li:eq(' + options.showItems + ')').fadeOut(options.speed);
  76.             }
  77.             obj.children('li:first').hide().fadeIn(options.speed).show();
  78.         }
  79.     };
  80.    
  81.     return this.each(function() {
  82.         var obj = $(this);
  83.         var maxHeight = 0;
  84.  
  85.         obj.css({overflow: 'hidden', position: 'relative'})
  86.             .children('ul').css({position: 'absolute', margin: 0, padding: 0})
  87.             .children('li').css({margin: 0, padding: 0});
  88.  
  89.         if(options.height == 0)
  90.         {
  91.             obj.children('ul').children('li').each(function(){
  92.                 if($(this).height() > maxHeight)
  93.                 {
  94.                     maxHeight = $(this).height();
  95.                 }
  96.             });
  97.  
  98.             obj.children('ul').children('li').each(function(){
  99.                 $(this).height(maxHeight);
  100.             });
  101.  
  102.             obj.height(maxHeight * options.showItems);
  103.         }
  104.         else
  105.         {
  106.             obj.height(options.height);
  107.         }
  108.        
  109.         var interval = setInterval(function(){
  110.             if(options.direction == 'up')
  111.             {
  112.                 moveUp(obj, maxHeight, options);
  113.             }
  114.             else
  115.             {
  116.                 moveDown(obj, maxHeight, options);
  117.             }
  118.         }, options.pause);
  119.        
  120.         if(options.mousePause)
  121.         {
  122.             obj.bind("mouseenter",function(){
  123.                 options.isPaused = true;
  124.             }).bind("mouseleave",function(){
  125.                 options.isPaused = false;
  126.             });
  127.         }
  128.     });
  129. };
  130. })(jQuery);

Última edición por fher2010; 06/04/2012 a las 11:36 Razón: Errores en el código mostrado
  #2 (permalink)  
Antiguo 06/04/2012, 11:44
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 4 meses
Puntos: 641
Respuesta: Slide de noticias, una ayudita porfa

primero que nada, es evidente que esto es javascript, no se en que parte le ves el php

luego este script es muy claro, incluyes la libreria js de Jquery, luego haces una lista dentro de un div que contenga un class="x"

y al final simplemente colocas esto

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. $('.x').vTicker({
  3. speed: 500,
  4. pause: 3000,
  5. showItems: 3,
  6. animation: 'fade',
  7. mousePause: false,
  8. height: 0,
  9. direction: 'up'
  10. });
  11. </script>

en donde quieras, puede ser al final del body o entre las etiquetas head de tu web, si te fijas lo unico es que la clase x o como la llames la llamas con la última parte del código que te pasé, eso es todo, lo demás es solo añadir las librerías que hacen toda la chamba.
  #3 (permalink)  
Antiguo 06/04/2012, 11:45
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 137
Respuesta: Slide de noticias, una ayudita porfa

no precisamente tiene que ser una clase, tambien puede ser un id, en el ejemplo usan un id, ya que jquery puedes usar cualquier objeto dentro del DOM....
Y para usar este plugin debes utilizar listas, por ejemplo
Código HTML:
Ver original
  1. <div class="noticias>
  2. <ul>
  3. <li> Noticia uno </li>
  4. <li> Noticia dos </li>
  5. <li> Etc... </li>
  6. </ul>
  7. </div>

y en el head recuerda tambien poner el
Código HTML:
Ver original
  1. <script type="text/javascript" src="jquery.js"></script>
quedaria masomenos asi


Código HTML:
Ver original
  1. <!doctype html>
  2. <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
  3. <script type="text/javascript" src="http://www.jugbit.com/jquery/jquery.vticker-min.js"></script>
  4. <script type="text/javascript">
  5. $(function(){
  6.     $('.noticias').vTicker();
  7. });
  8. </head>
  9. <div class="noticias" style="width: 200px; height: 100px;">
  10. <ul>
  11. <li> Noticia 1 </li>
  12. <li> Noticia 2 </li>
  13. <li> Noticia 3 </li>
  14. <li> Noticia 4 </li>
  15. <li> Noticia 5 </li>
  16. <li> Noticia 6 </li>
  17. <li> Noticia 7 </li>
  18. </ul>
  19. </div>
  20. </body>
  21. </html>
prueba el codigo que acabo de poner a mi si me funciono
  #4 (permalink)  
Antiguo 06/04/2012, 11:57
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 4 meses
Puntos: 641
Respuesta: Slide de noticias, una ayudita porfa

el chiste es que se llama al div de jquery, puede ser clase, id, name, pseudo clase, pero nocompliquemos al joven con nimiedades.
  #5 (permalink)  
Antiguo 06/04/2012, 13:39
 
Fecha de Ingreso: agosto-2010
Mensajes: 44
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Slide de noticias, una ayudita porfa

Muchas gracias memoadian ... me hiciste reir y recordar a un gran amigo cuando dices .. "primero que nada, es evidente que esto es javascript, no se en que parte le ves el php" .... jajaja ... y es q tienes mucha razón ... lo q pasa es q las noticias que mostrarán el slide salen de una serie de consultas mediante php a una BD ... y claro .. el archivo en el q estoy trabajando se llama index.php ----- jejeje ... sorry de todas maneras por la inexperiencia .... En fin gracias por la ayuda hay un poco mas de claridad... aunq lamento decir q aún no lo comprendo del todo pero mis dudas se van discipando y seguiré leyendo mas sobre el uso de librerias js ..

En cuanto a abimex ... efectivamente el código q colocaste funciona a la perfección .... y soluciona el problema .. aunq no se como ni por qué ... jajajajaja ....

Es decir .. en tu ejemplo veo q incluyes o llamas a la librería aquí:
Código Javascript:
Ver original
  1. <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
  2. <script type="text/javascript" src="http://www.jugbit.com/jquery/jquery.vticker-min.js"></script>

luego declaras la clase:
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. $(function(){
  3.     $('.noticias').vTicker();
  4. });
  5. </script>
y claro en el div ya es cuestion de utilizarla .. como clase en este caso o id, name, etc .. si fuera la cuestion ...

Pero mis dudas son:

Si ya tengo la librería copiada en el directorio del sitio es decir en la siguiente ruta "js/jquery.vticker.js" .. y en el HTML coloco ...
Código Javascript:
Ver original
  1. <script type="text/javascript" src="js/jquery.vticker.js"></script>
  2. <script type="text/javascript">
  3. $(function(){
  4.     $('.noticias').vTicker();
  5. });
  6. </script>
¿por qué no funciona?

¿Por qué cuando incluyes la librería parece q la llamas directamente desde el sitio de descarga (o del creador si se prefiere) .. y no desde tu propio sitio? ... digo porque se ve mas o menos así ..

src="http://code.jquery.com/jquery-latest.min.js"
src="http://www.jugbit.com/jquery/jquery.vticker-min.js"

En fin son dudas q tengo ... no me gusta poner por poner un código o script q no es hecho por mi ... no soy muy avanzado en programación pero con lo que se hasta ahora me las rebusco ...

Con la solución (código) q colocaste funciona de maravilla y tendría q darme por satisfecho ... pero seguiré investigando hasta entender ... en una de esas son las pocas horas de sueño q tengo ..en una de esas mañana despierto y veo las cosas con mas claridad ...

Muchas gracias a ambos por responder ...

Suerte
  #6 (permalink)  
Antiguo 06/04/2012, 22:11
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 4 meses
Puntos: 641
Respuesta: Slide de noticias, una ayudita porfa

lo que pasa es que seguramente la ruta relativa que usas esta mal escrita, entra al código fuente y clickea el link de esa ruta relativa que pones

js/jquery.vticker.js

y si te sale el código esta bien, pero si te sale otra cosa como una página 404 es que esta mal.
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 04:37.