Re: (off topic / Computer) Texte spiralförmig schreiben ?
Geschrieben von Cattya am 26. Juni 2003 13:38:21:
Als Antwort auf: Re: (off topic / Computer) Texte spiralförmig schreiben ? geschrieben von Kober am 26. Juni 2003 11:21:47:
var initialx, initialy, scrolltext;
var frame = 0, frame2 = 0.5;
var amplitude1 = 50, amplitude2 = 30; //Amplitude beim Scrollen im negativen und positiven Bereich
var offset = 0.2, speed = 0.2, speed2 = 0.35; //1 Augangsgröße und Geschwindigkeit zwischen den Ausgangsgrößen
var offset2 = 0.6; //2 Ausgangsgröße
var scrollspeed = 6; //Scrollgeschwindigkeit
var charwidth = 40; //Abstand zwischen den Buchstaben
var twopi = Math.PI * 2;
var chracters, position, numvisible, nextchar, firstchar;
var skipsteps = 1;
var delaytimer = 1; //Zeit bis zum ersten einlaufen
var interval;function sinescroll (x, y, value, number_of_chars)
{
scrolltext = new String(value);
initialx = x;
initialy = y;
numvisible = number_of_chars;
nextchar = numvisible;
firstchar = 0;
characters = new Array(numvisible);
position = initialx;for (var i = 0; i < numvisible; i++)
{
document.write('');',
scrolltext.charAt(i), '
}
}
function step ()
{
frame += speed;
frame2 += speed2;if (delaytimer > 0)
{
delaytimer--;
}
else
{
position -= scrollspeed;
}
if (position < (initialx - charwidth))
{
while (scrolltext.charAt(nextchar) == '|')
{
delaytimer += 90;
nextchar++;
}
characters[firstchar].innerHTML = '' + scrolltext.charAt(nextchar) + '
';nextchar++;
if (nextchar >= scrolltext.length)
{
nextchar = 0;
}
position += charwidth;
frame += offset;
frame2 += offset2;firstchar++;
if (firstchar >= numvisible)
{
firstchar = 0;
}
}
if (frame > twopi) frame -= twopi;
if (frame2 > twopi) frame2 -= twopi;var angle = frame;
var angle2 = frame2;
var pos = position;for (var i=firstchar; i < numvisible; i++)
{
characters[i].style.left = pos;
characters[i].style.top = initialy + amplitude1 * Math.sin(angle) + amplitude2 * Math.sin(angle2);
angle += offset;
angle2 += offset2;
pos += charwidth;
}for (var i=0; i < firstchar; i++)
{
characters[i].style.left = pos;
characters[i].style.top = initialy + amplitude1 * Math.sin(angle) + amplitude2 * Math.sin(angle2);
angle += offset;
angle2 += offset2;
pos += charwidth;
}
}
function start ()
{
if (!document.all)
return
characters = document.all.item('character');
interval = window.setInterval("step();", 20); //Intervalsequez
}
function stop ()
{
if (!document.all)
return
if (interval)
clearInterval(interval);
}
window.onload=start
window.onunload=stop
if (document.all)
sinescroll(30, 100, " Mal sehen obs funktioniert... ", 15);
//-->