Mausverfolger Textrotor

Moderator: HTML-Laie

Antworten
Benutzeravatar
Hape
Administrator
Beiträge: 336
Registriert: Fr 22. Mai 2020, 00:33

Mausverfolger Textrotor

Beitrag von Hape »

Dieses Script läßt einen Text um den Mauszeiger rotieren.

Code: Alles auswählen

<script type='text/javascript'>
<!--
// Ihre Nachricht hier eingeben
var msg='Hapes-Javascript-Forum ';

// folgende Variablen ggf. anpassen
var font='Verdana,Arial';
var size=2; // Schriftgröße (bis 7)
var color='#003399'; // Farbe
var speed=.3; // Geschwindigkeit
var rotation=.1; // Rotation

// ab hier nichts mehr ändern!
var ns=(document.layers);
var ie=(document.getElementById);
var msg=msg.split('');
var n=msg.length;
var a=size*15;
var currStep=0;
var ymouse=0;
var xmouse=0;
var scrll=0;
var props="<font face="+font+" size="+size+" color="+color+">";

if (ns){
for (i=0; i < n; i++)
document.write('<layer name="nsmsg'+i+'" top=0 left=0 height='+a+' width='+a+'><center>'+props+msg[i]+'</font></center></layer>');
}
if (ie){
document.write('<div id="outermausi" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i=0; i < n; i++)
document.write('<div id="iemsg'+i+'" style="position:absolute;top:0px;left:0;height:'+a+'px;width:'+a+'px;text-align:center;font-weight:regular;cursor:default">'+props+msg[i]+'</font></div>');
document.write('</div></div>');
}
(ns)?window.captureEvents(Event.MOUSEMOVE):0;

function Mouse(e){
ymouse = (e)?e.pageY+20-(window.pageYOffset):event.y; // y-position
xmouse = (e)?e.pageX+20:event.x-20; // x-position
}

if (ns||ie)
(ns)?window.onMouseMove=Mouse:document.onmousemove=Mouse;
y=new Array();
x=new Array();
Y=new Array();
X=new Array();
for (i=0; i < n; i++){
y[i]=0;
x[i]=0;
Y[i]=0;
X[i]=0;
}

function makecircle(){ // rotation-eigenschaften
if (ie) document.getElementById('outermausi').style.top=document.documentElement.scrollTop;
currStep-=rotation;
for (i=0; i < n; i++){ // generiert den kreis
var d=(ns)?document.layers['nsmsg'+i]:document.getElementById('iemsg'+i).style;
d.top=y[i]+a*Math.sin((currStep+i*0.8)/3.8)-15+"px";
d.left=x[i]+a*Math.cos((currStep+i*0.8)/3.8)*3.5+"px";
}
}

function drag(){ // makes the resistance
scrll=(ns)?window.pageYOffset:0;
y[0]=Math.round(Y[0]+=((ymouse)-Y[0])*speed);
x[0]=Math.round(X[0]+=((xmouse)-X[0])*speed);
for (var i=1; i < n; i++){
y[i]=Math.round(Y[i]+=(y[i-1]-Y[i])*speed);
x[i]=Math.round(X[i]+=(x[i-1]-X[i])*speed);

}
makecircle();
setTimeout('drag()',10);
}
//-->
</script>

<script type="text/javascript">function addEvent12(obj,type,fn){if(obj.addEventListener){obj.addEventListener(type,fn,false)}else if(obj.attachEvent){obj["e"+type+fn]=fn;obj[type+fn]=function(){obj["e"+type+fn](window.event)};obj.attachEvent("on"+type,obj[type+fn])}};if (ns||ie){addEvent12(window,'load',drag);}</script>
Hier die Demoseite dazu: Textrotor

Antworten