Página 1 de 1

Texto 3d circuito BBCode  Tema Solucionado

Publicado: 05 Jul 2009, 00:36
por oskr_nacho
Autor: Texto 3d circuito BBCode
Descripción: Con este BBcode las letras vuelan y hacen un circulo que sigue al mouse
Traducido (la descripcion y el titulo): Oskr_Nacho :chulo:

BBcode:

Código: Seleccionar todo

[circle]{TEXT}[/circle]
HTML

Código: Seleccionar todo

    <style type="text/css">
    /* Circle Text Styles */
    #outerCircleText {
    /* Optional - DO NOT SET FONT-SIZE HERE, SET IT IN THE SCRIPT */
    font-style: italic;
    font-weight: bold;
    font-family: 'comic sans ms', verdana, arial;
    color: #000;
    /* End Optional */

    /* Start Required - Do Not Edit */
    position: absolute;top: 0;left: 0;z-index: 3000;cursor: default;}
    #outerCircleText div {position: relative;}
    #outerCircleText div div {position: absolute;top: 0;left: 0;text-align: center;}
    /* End Required */
    /* End Circle Text Styles */
    </style>
    <script type="text/javascript">

    /* Circling text trail- Tim Tilton
       Website: http://www.tempermedia.com/
       Visit: http://www.dynamicdrive.com/ for Original Source and tons of scripts
       Modified Here for more flexibility and modern browser support
       Modifications as first seen in http://www.dynamicdrive.com/forums/
       username:jscheuer1 - This notice must remain for legal use
       */

    ;(function(){

    // Your message here (QUOTED STRING)
    var msg = "{TEXT}";

    /* THE REST OF THE EDITABLE VALUES BELOW ARE ALL UNQUOTED NUMBERS */

    // Set font's style size for calculating dimensions
    // Set to number of desired pixels font size (decimal and negative numbers not allowed)
    var size = 24;

    // Set both to 1 for plain circle, set one of them to 2 for oval
    // Other numbers & decimals can have interesting effects, keep these low (0 to 3)
    var circleY = 0.75; var circleX = 2;

    // The larger this divisor, the smaller the spaces between letters
    // (decimals allowed, not negative numbers)
    var letter_spacing = 5;

    // The larger this multiplier, the bigger the circle/oval
    // (decimals allowed, not negative numbers, some rounding is applied)
    var diameter = 10;

    // Rotation speed, set it negative if you want it to spin clockwise (decimals allowed)
    var rotation = 0.4;

    // This is not the rotation speed, its the reaction speed, keep low!
    // Set this to 1 or a decimal less than one (decimals allowed, not negative numbers)
    var speed = 0.3;

    ////////////////////// Stop Editing //////////////////////

    if (!window.addEventListener && !window.attachEvent || !document.createElement) return;

    msg = msg.split('');
    var n = msg.length - 1, a = Math.round(size * diameter * 0.208333), currStep = 20,
    ymouse = a * circleY + 20, xmouse = a * circleX + 20, y = [], x = [], Y = [], X = [],
    o = document.createElement('div'), oi = document.createElement('div'),
    b = document.compatMode && document.compatMode != "BackCompat"? document.documentElement : document.body,

    mouse = function(e){
    e = e || window.event;
    ymouse = !isNaN(e.pageY)? e.pageY : e.clientY; // y-position
    xmouse = !isNaN(e.pageX)? e.pageX : e.clientX; // x-position
    },

    makecircle = function(){ // rotation/positioning
    if(init.nopy){
      o.style.top = (b || document.body).scrollTop + 'px';
      o.style.left = (b || document.body).scrollLeft + 'px';
    };
    currStep -= rotation;
    for (var d, i = n; i > -1; --i){ // makes the circle
      d = document.getElementById('iemsg' + i).style;
      d.top = Math.round(y[i] + a * Math.sin((currStep + i) / letter_spacing) * circleY - 15) + 'px';
      d.left = Math.round(x[i] + a * Math.cos((currStep + i) / letter_spacing) * circleX) + 'px';
    };
    },

    drag = function(){ // makes the resistance
    y[0] = Y[0] += (ymouse - Y[0]) * speed;
    x[0] = X[0] += (xmouse - 20 - X[0]) * speed;
    for (var i = n; i > 0; --i){
      y[i] = Y[i] += (y[i-1] - Y[i]) * speed;
      x[i] = X[i] += (x[i-1] - X[i]) * speed;
    };
    makecircle();
    },

    init = function(){ // appends message divs, & sets initial values for positioning arrays
    if(!isNaN(window.pageYOffset)){
      ymouse += window.pageYOffset;
      xmouse += window.pageXOffset;
    } else init.nopy = true;
    for (var d, i = n; i > -1; --i){
      d = document.createElement('div'); d.id = 'iemsg' + i;
      d.style.height = d.style.width = a + 'px';
      d.appendChild(document.createTextNode(msg[i]));
      oi.appendChild(d); y[i] = x[i] = Y[i] = X[i] = 0;
    };
    o.appendChild(oi); document.body.appendChild(o);
    setInterval(drag, 25);
    },

    ascroll = function(){
    ymouse += window.pageYOffset;
    xmouse += window.pageXOffset;
    window.removeEventListener('scroll', ascroll, false);
    };

    o.id = 'outerCircleText'; o.style.fontSize = size + 'px';

    if (window.addEventListener){
    window.addEventListener('load', init, false);
    document.addEventListener('mouseover', mouse, false);
    document.addEventListener('mousemove', mouse, false);
      if (/Apple/.test(navigator.vendor))
       window.addEventListener('scroll', ascroll, false);
    }
    else if (window.attachEvent){
    window.attachEvent('onload', init);
    document.attachEvent('onmousemove', mouse);
    };

    })();

    </script>
Línea de ayuda

Código: Seleccionar todo

Texto en circuito: [circle]Aqui el texto[/circle]
Ejemplo:

Código: Seleccionar todo

[circle]Oskr_Nacho es el mejor xD[/circle]
Aqui un Demo:
http://www.phpbb3bbcodes.com/viewtopic.php?f=4&t=2902

Re: Texto 3d circuito BBCode

Publicado: 13 Jul 2009, 04:35
por Qsere
Tienes o sabes donde encontrar en boton de circle?

GRACIAS

Re: Texto 3d circuito BBCode

Publicado: 19 Jul 2009, 01:18
por Daniel Ciccone
¡Está exelente! Pero... ¿Habrá la posibilidad de que tenga un limite? Ejemplo: Máximo 10 letras. :secreto:
¡Espero respuesta!
Gracias. :)

Re: Texto 3d circuito BBCode

Publicado: 12 Ago 2009, 01:08
por isaaclg
Me uno a la pregunta de poner "x" letras como maximo, sino puede ser una locura.

Re: Texto 3d circuito BBCode

Publicado: 06 Oct 2009, 15:45
por Jafo
isaaclg escribió:Me uno a la pregunta de poner "x" letras como maximo, sino puede ser una locura.
Mirando el código html creo que es relativamente sencillo de hacer.

En el código se guarda el texto en una variable llamada msg

Código: Seleccionar todo

var msg = "{TEXT}";
Lo que se me ocurre sería poner algo así justo detrás de esa línea

Código: Seleccionar todo

msg = msg.substr(0,n)
Donde n es el número de letras máximo que vamos a permitir en el texto.

Ojo, no lo he probado sino que lo he hecho lógica de programación 8)

Saludos!

Re: Texto 3d circuito BBCode

Publicado: 07 Oct 2009, 00:23
por Aguus.-
Osea que el texto se mueve segun el mouse ??

Muy bueno che :)

Salu2

Re: Texto 3d circuito BBCode

Publicado: 14 Oct 2009, 19:17
por chacarrachaca
Yo lo que propondria, si se puede hacer, es encajonarlo, es decir, que actualmente, sea donde sea que tengas el mouse, estara dando vueltas el anuncio, por llamarlo de alguna manera.
En mi caso, me interesaria, que debajo de donde yo quiera, se lea por ejemplo, No te olvides de comentar. Siempre claro, de la manera que lo hace actualmente, moviendose.
Espero haberme explicado porque como decia mi abuelo, no aclares que oscureces.
Salu2