Mostrando las entradas con la etiqueta JAVASCRIPT. Mostrar todas las entradas
Mostrando las entradas con la etiqueta JAVASCRIPT. Mostrar todas las entradas

lunes, octubre 31, 2011

jCarousel con controles externos

Siempre he elegido usar la librería jCarousel para implementar los carruseles, es una librería basada en el framework jQuery. En este ocasión tuve que implementarla poniéndole vínculos externos, es decir, con los links afuera, que cambiara automáticamente y que cuando se presionara algun vínculo, siguiera el orden. Este era para hacer un banner, de estos que son muy populares actualmente.

Tuve que hacer algunas implementaciones y tras algunos clicks en google, conseguí hacer que el carrusel hiciera lo esperado.

Aquí los pasos:

1. Descargar la última version del jCarousel (http://sorgalla.com/jcarousel/) y poner la última versión de jQuery al inicio del documento (http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js). Empezamos por construir de la forma habitual los elementos del carrusel, pero al principio construir también los enlaces los cuales más abajo les daremos funcionalidad:


    

        1

        2
        3
        4
        5
        6
    

   

            

  •             
     
                    
                   
    Texto del banner 1

                

            

  •         

  •             

                    
                   
    Texto del banner 2

                

            

  •         

  •             

                    
                   
    Texto del banner 3

                

            

  •         

  •             

                    
                   
    Texto del banner 4

                

            

  •         

  •             

                    
                   
    Texto del banner 5

                

            

  •         

  •             

                    
                   
    Texto del banner 6

                

            

  •    


2. Hacer una función que construya los vínculos externos para que puedan ser presionados en cualquier momento del banner:
function llamaCarrusel (carousel) {
    $('.jcarousel-control a').bind('click', function() {
     var index = $(this).attr("id").split("_");
     carousel.scroll($.jcarousel.intval(index[1]));
     $(".jcarousel-control a").removeClass("active"); 
     $(this).addClass("active");
       return false;
    });
    $('.jcarousel-scroll select').bind('change', function() {
        carousel.options.scroll =               $.jcarousel.intval(this.options[this.selectedIndex].value);
        return false;
    });
};
Donde .jcarousel-control es el elemento que pusimos al inicio de nuestro HTML. Lo que hace esta función será agregar una clase a cada elemento, la clase .active en el elemento cuando se haga click y al mismo tiempo removerla de todos los demás elementos.

3. Crear la función que hará posible saber en qué elemento se encuentra actualmente el script y a ése ponerle la clase .active y eliminarla del resto:
function activaBoton (c, o, i, s) {
var size = c.options.size; 
i = (((i - 1) % size) + size) % size;            
$('.jcarousel-control a').removeClass('active').addClass('inactive');
$('.jcarousel-control a:eq('+i+')').removeClass('inactive').addClass('active');
}
4. Por último hacer la llamada de ambos script en los eventos initCallback e itemVisibleInCallback, esto  al inicio del documento:

$(document).ready(function() {
if ($("#bannerHome").length) {
$("#bannerHome").jcarousel({
scroll: 1,
auto: 4,
wrap: 'circular',
initCallback: llamaCarrusel,
itemVisibleInCallback: activaBoton,
});

});
Espero a alguien le sirva.

miércoles, marzo 05, 2008

Image Thumbnail Viewer

Un visor de miniaturas.... o como se traduzca eso... ^_^
Se ven las miniaturas, presionas y en la misma página aparece la foto, incluye un precargador.... cool!!!... y lo más interesante es que sólo se usa JS
Image Thumbnail Viewer

Efectos en imágenes con JS

En este sitio, los JS pueden generar efectos en tus imágenes que pareciera modificaste en Photoshop o Fireworks.... muy bueno...
CVI-Projects

jueves, octubre 20, 2005

(CSS) Layout multi-column

Para hacer 2, 3, 4 o más columnas SOLO CON ESTILOS, me he encontrado una script fabuloso en csscripting.com.


Cómo usarlo:



  1. Descargar el script al sitio(TIENE QUE ESTAR EN EL SITIO SI NO NO JALA).

  2. Agregar el script DESPUÉS del vínculo a la hoja de estilos:



    <link rel="stylesheet" type="text/css" href="stylesheet.css" />

    <script type="text/javascript" src="css3-multi-column.js"></script>

  3. Se pueden usar estas propiedades:





























Propiedad CSS Tipo Ejemplo
column-count un número 3
column-width valor en pixeles 200px
column-gap valor en pixeles 10px
column-rule definición del borde 1px solid #000

miércoles, octubre 19, 2005

(JAVASCRIPT) Corregir "bug" de IE para mostrar transparencia en PNG's

Para que el IE pueda mostrar “correctamente” nuestros PNGs con transparencias tenemos que añadir las siguientes líneas en las cabeceras HTML de nuestra web:



<!-- This solves the Internet Explorer PNG-transparency bug, but only for IE 5.5 and higher -->

<!--[if gte IE 5.5000]>

<script src="pngfix.js" type="text/javascript">

</script>

<![endif]-->



y copiar en nuestro servidor web el fichero pngfix.js:


function correctPNG() // correctly handle PNG transparency in Win IE 5.5 or higher.

{

for(var i=0; i<document.images.length; i++)

{

var img = document.images[i]

var imgName = img.src.toUpperCase()

if (imgName.substring(imgName.length-3, imgName.length) == "PNG")

{

var imgID = (img.id) ? "id='" + img.id + "' " : ""

var imgClass = (img.className) ? "class='" + img.className + "' " : ""

var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "

var imgStyle = "display:inline-block;" + img.style.cssText

var imgAttribs = img.attributes;

for (var j=0; j<imgAttribs.length; j++)

{

var imgAttrib = imgAttribs[j];

if (imgAttrib.nodeName == "align")

{

if (imgAttrib.nodeValue == "left") imgStyle = "float:left;" + imgStyle

if (imgAttrib.nodeValue == "right") imgStyle = "float:right;" + imgStyle

break

}

}

var strNewHTML = "<span " + imgID + imgClass + imgTitle

strNewHTML += " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"

strNewHTML += "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"

strNewHTML += "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"

img.outerHTML = strNewHTML

i = i-1

}

}

}

window.attachEvent("onload", correctPNG);