PHP Classes
elePHPant
Icontem

File: contador.inc.php

Recommend this page to a friend!
  Classes of Joseluis Laso  >  jlaso Contador  >  contador.inc.php  >  Download  
File: contador.inc.php
Role: Auxiliary data
Content type: text/plain
Description: Class source
Class: jlaso Contador
Record user visits with MySQL database using PDO
Author: By
Last change:
Date: 4 years ago
Size: 3,895 bytes
 

Contents

Class file image Download
<style type="text/css">
#contador{
    display:inline;
}
.digitJlaso {
    background-image:url('digitos.png');
    background-position: 0px 0px;
    background-repeat:no-repeat;
    width:30px;
    height:45px;
    vert-align:middle;
    padding-top:30px;
    *padding-top: 0px;  /* para que solo lo tome en cuenta IE7 e inferiores */
}
</style>
<script type="text/javascript">
    
    /*
     * Objeto contador
     * 
     */
    function Contador(
            desde,      // desde que número vamos a contar
            hasta,      // hasta que número vamos a contar
            digitos,    // digitos de resolución del contador (pone ceros delante)
            milisegs,   // milisegs que transcurren entre cada iteración de animación
            miDiv,      // miDiv, ID del div donde hay que presentar el contador
            pathImg,    // ruta de las imágenes 
            altoImg,    // alto de cada dígito dentro de la tira de imágenes
            offsetImg   // offset del cero dentro de la tira de imágenes
        ){
        this.stop     = hasta;
        this.digitos  = digitos;
        this.milisegs = milisegs;
        this.miDiv    = miDiv;
        this.pathImg  = pathImg;
        this.altoImg  = altoImg;
        this.offsetImg= offsetImg;
        this.actualP  = new Array();
        this.stopP    = 0; 
        this.actual   = desde.toString();
        for (var i=this.actual.length;i<this.digitos;i++){
            this.actual = "0"+this.actual;
        }  
    }

    Contador.prototype = {
        show: function(){
            var a = this.actual.split("");
            var contenedor = document.getElementById(this.miDiv);
            //contenedor.innerHTML += this.actual + "<br/>";
            var e = this.digitos-1;
            var valor=0;
            for (i=0;i<a.length;i++){
                valor = parseInt(a[i]) * this.altoImg + this.offsetImg;
                contenedor.innerHTML += //a[i]+
                  '<a href="http://jaitec.net/blog/contador-visitas" target="_blank">'+
                    '<span id="dig'+e+'" class="digitJlaso" style="background-position: 0px -'+valor+'px;">'+
                    '    <img src="'+this.pathImg+'/transp30x45.png"/>'+
                    '</span>'+
                  '</a>';
                e--;
            }                        
        },
        animarDigito:function(){
            this.actualP[0]++; 
            var dig = document.getElementById("dig0");
            dig.style.backgroundPosition="0 -"+this.actualP[0]+"px"; 
            // mirar si es un nueve para incrementar el de al lado tambien
            d=0;
            while(this.actualP[d]>9*this.altoImg+this.offsetImg){
                d++;
                this.actualP[d]++; 
                var dig = document.getElementById("dig"+d);
                dig.style.backgroundPosition="0 -"+this.actualP[d]+"px"; 
            }
            if (this.actualP[0]>this.stopP){                
                clearInterval(this.interval);
                if (this.actual<this.stop-1){
                    this.actual++;
                    this.animar();
                }
            }
        },
        animar: function(){   
            if (this.actual<this.stop){ 
                var a = this.actual.toString().split("").reverse();
                for (i=0;i<a.length;i++){
                    this.actualP[i] = this.altoImg * a[i] + this.offsetImg;                        
                }
                this.stopP = this.actualP[0] + this.altoImg; 
                var that = this;
                this.interval = setInterval(function(){that.animarDigito();},this.milisegs);
            }
        }
    }
    
    /* modelo de llamada
    window.onload = function(){
       var contador = new Contador(0,999999,6,100,"contenedor","inc/contador",42,17);
       contador.show();
       contador.animar();
    }
    */
</script>