Of browsers in use today, this script will only work for IE. Geocities has a nasty habit of high jacking the 'i' variable so those will need to be changed for it to work at all. Global and local instances of 'i' (below changed to 'xdt') are not distinguished, fixing this as I do below is just an efficiency move. The open script tag is outdated (also fixed below). There could be other problems but, give this a shot:
Code:
<script type="text/javascript">
//Circling text trail- Tim Tilton
//Website: http://www.tempermedia.com/
//Visit http://www.dynamicdrive.com for this script and more
// your message here
var msg='Dynamic Drive!';
var font='Verdana,Arial';
var size=3; // up to seven
var color='#000000';
// This is not the rotation speed, its the reaction speed, keep low!
// Set this to 1 for just plain rotation w/out drag
var speed=.3;
// This is the rotation speed, set it negative if you want
// it to spin clockwise
var rotation=.2;
// Alter no variables past here!, unless you are good
//---------------------------------------------------
var ns=(document.layers);
var ie=(document.all);
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 (ie)
window.pageYOffset=0
// writes the message
if (ns){
for (var xdt=0; xdt < n; xdt++)
document.write('<layer name="nsmsg'+xdt+'" top=0 left=0 height='+a+' width='+a+'><center>'+props+msg[xdt]+'</font></center></layer>');
}
if (ie){
document.write('<div id="outer" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (var xdt=0; xdt < n; xdt++)
document.write('<div id="iemsg" style="position:absolute;top:0px;left:0;height:'+a+';width:'+a+';text-align:center;font-weight:regular;cursor:default">'+props+msg[xdt]+'</font></div>');
document.write('</div></div>');
}
(ns)?window.captureEvents(Event.MOUSEMOVE):0;
function Mouse(evnt){
ymouse = (ns)?evnt.pageY+20-(window.pageYOffset):event.y; // y-position
xmouse = (ns)?evnt.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 (xdt=0; xdt < n; xdt++){
y[xdt]=0;
x[xdt]=0;
Y[xdt]=0;
X[xdt]=0;
}
function makecircle(){ // rotation properties
if (ie) outer.style.top=document.body.scrollTop;
currStep-=rotation;
for (var xdt=0; xdt < n; xdt++){ // makes the circle
var d=(ns)?document.layers['nsmsg'+xdt]:iemsg[xdt].style;
d.top=y[xdt]+a*Math.sin((currStep+xdt*1)/3.8)+window.pageYOffset-15;
d.left=x[xdt]+a*Math.cos((currStep+xdt*1)/3.8)*2; // remove *2 for just a plain circle, not oval
}
}
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 xdt=1; xdt < n; xdt++){
y[xdt]=Math.round(Y[xdt]+=(y[xdt-1]-Y[xdt])*speed);
x[xdt]=Math.round(X[xdt]+=(x[xdt-1]-X[xdt])*speed);
}
makecircle();
// not rotation speed, leave at zero
setTimeout('drag()',10);
}
if (ns||ie)window.onload=drag;
</script>
Bookmarks