本页主题: 分享一个鼠标跟随的时针特效 打印 | 加为IE收藏 | 复制链接 | 收藏主题 | 上一主题 | 下一主题

水易
相逢何必曾相识●缘聚缘散皆是缘
级别: 论坛版主

 分享一个鼠标跟随的时针特效

0
代码
Copy code
<script language="JavaScript">
<!--
fcol='aecae5';//face colour.
sCol='ff0000';//seconds colour.
mCol='aecae5';//minutes colour.
hCol='aecae5';//hours colour.
ClockHeight=40;
ClockWidth=40;
ClockFromMouseY=80;
ClockFromMouseX=0;

//Alter nothing below! Alignments will be lost!

H='...';
H=H.split('');
M='....';
M=M.split('');
S='.....';
S=S.split('');
msg='1 2 3 4 5 6 7 8 9 10 11 12';
font='Arial';
size=1;
speed=0.5;
ns=(document.layers);
ie=(document.all);
msg=msg.split(' ');
n=msg.length;
a=size*10;
ymouse=0;
xmouse=0;
scrll=0;
props="<font face="+font+" size="+size+" color="+fcol+">";
Split=360/n;
HandHeight=ClockHeight/4.5
HandWidth=ClockWidth/4.5
HandY=-7;
HandX=-2.5;
scrll=0;
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;
}
if (ns){
for (i=0; i < n; i++)
document.write('<layer name="nsFace'+i+'" top=0 left=0 height='+a+' width='+a+'><center>'+props+msg[i]+'</font></center></layer>');
for (i=0; i < S.length; i++)
document.write('<layer name=nsSeconds'+i+' top=0 left=0 width=15 height=15><font face=Arial size=3 color='+sCol+'><center><b>'+S[i]+'</b></center></font></layer>');
for (i=0; i < M.length; i++)
document.write('<layer name=nsMinutes'+i+' top=0 left=0 width=15 height=15><font face=Arial size=3 color='+mCol+'><center><b>'+M[i]+'</b></center></font></layer>');
for (i=0; i < H.length; i++)
document.write('<layer name=nsHours'+i+' top=0 left=0 width=15 height=15><font face=Arial size=3 color='+hCol+'><center><b>'+H[i]+'</b></center></font></layer>');
}
if (ie){
document.write('<div id="Of" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i=0; i < n; i++)
document.write('<div id="ieFace" style="position:absolute;top:0px;left:0;height:'+a+';width:'+a+';text-align:center">'+props+msg[i]+'</font></div>');
document.write('</div></div>');

document.write('<div id="Oh" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i=0; i < H.length; i++){
document.write('<div id="ieHours" style="position:absolute;width:16px;height:16px;font-family:Arial;font-size:16px;color:'+hCol+';text-align:center;font-weight:bold">'+H[i]+'</div>');
}
document.write('</div></div>');
document.write('<div id="Om" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i=0; i < M.length; i++){
document.write('<div id="ieMinutes" style="position:absolute;width:16px;height:16px;font-family:Arial;font-size:16px;color:'+mCol+';text-align:center;font-weight:bold">'+M[i]+'</div>');
}
document.write('</div></div>')
document.write('<div id="Os" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i=0; i < S.length; i++){
document.write('<div id="ieSeconds" style="position:absolute;width:16px;height:16px;font-family:Arial;font-size:16px;color:'+sCol+';text-align:center;font-weight:bold">'+S[i]+'</div>');
}
document.write('</div></div>')
}
(ns)?window.captureEvents(Event.MOUSEMOVE):0;
function Mouse(evnt){
ymouse = (ns)?evnt.pageY+ClockFromMouseY-(window.pageYOffset):event.y+ClockFromMouseY;
xmouse = (ns)?evnt.pageX+ClockFromMouseX:event.x+ClockFromMouseX;
}
(ns)?window.onMouseMove=Mouse:document.onmousemove=Mouse;
function ClockAndAssign(){
time = new Date ();
secs = time.getSeconds();
sec = -1.57 + Math.PI * secs/30;
mins = time.getMinutes();
min = -1.57 + Math.PI * mins/30;
hr = time.getHours();
hrs = -1.575 + Math.PI * hr/6+ Math.PI*parseInt(time.getMinutes())/360;
if (ie){
Of.style.top=window.document.body.scrollTop;
Oh.style.top=window.document.body.scrollTop;
Om.style.top=window.document.body.scrollTop;
Os.style.top=window.document.body.scrollTop;
}
for (i=0; i < n; i++){
var F=(ns)?document.layers['nsFace'+i]:ieFace[i].style;
F.top=y[i] + ClockHeight*Math.sin(-1.0471 + i*Split*Math.PI/180)+scrll;
F.left=x[i] + ClockWidth*Math.cos(-1.0471 + i*Split*Math.PI/180);
}
for (i=0; i < H.length; i++){
var HL=(ns)?document.layers['nsHours'+i]:ieHours[i].style;
HL.top=y[i]+HandY+(i*HandHeight)*Math.sin(hrs)+scrll;
HL.left=x[i]+HandX+(i*HandWidth)*Math.cos(hrs);
}
for (i=0; i < M.length; i++){
var ML=(ns)?document.layers['nsMinutes'+i]:ieMinutes[i].style;
ML.top=y[i]+HandY+(i*HandHeight)*Math.sin(min)+scrll;
ML.left=x[i]+HandX+(i*HandWidth)*Math.cos(min);
}
for (i=0; i < S.length; i++){
var SL=(ns)?document.layers['nsSeconds'+i]:ieSeconds[i].style;
SL.top=y[i]+HandY+(i*HandHeight)*Math.sin(sec)+scrll;
SL.left=x[i]+HandX+(i*HandWidth)*Math.cos(sec);
}
}
function Delay(){
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);
}
ClockAndAssign();
setTimeout('Delay()',20);
}
if (ns||ie)window.onload=Delay;
//-->
</script>


演示:
http://www.zlcp.net/sybbs/时针特效.htm
[ 此贴被水易在2007-12-07 15:03重新编辑 ]
本帖最近评分记录:
  • 威望:+10(吗啡) 好东西
  • 威望:+10(东东sky) 优秀文章
  • 搜索更多相关文章:水易
    顶端 Posted: 2007-10-13 11:41 | [楼 主]
    水易
    相逢何必曾相识●缘聚缘散皆是缘
    级别: 论坛版主

     

    Quote:
    引用第2楼阿牛于2007-10-13 19:00发表的  :
    不行呀.我加到CSS后面没有一点效果

    请检查代码的完整性以及你代码加的位置!一定可以,你没有看到我的演示吗?
    顶端 Posted: 2007-10-13 19:24 | 1 楼
    水易
    相逢何必曾相识●缘聚缘散皆是缘
    级别: 论坛版主

     

    白色背景的可以改变字体的颜色啊。楼上的为什么不能灵活点呢?!

    当然,本人不建议放在论坛里,可以放在音画帖子里增加帖子的欣赏性!
    顶端 Posted: 2007-10-14 10:18 | 2 楼
    水易
    相逢何必曾相识●缘聚缘散皆是缘
    级别: 论坛版主

     

    不建议使用,适合放在音画帖子里!放在CSS里会影响页面速度。
    顶端 Posted: 2007-12-24 08:31 | 3 楼
    水易
    相逢何必曾相识●缘聚缘散皆是缘
    级别: 论坛版主

     

    呵呵,不是不帮你,真的,放CSS里论坛卡得要命,我测试过了,你可以放在某个帖子里或者公告里都行!

    你用下面的代码放到某个版块公告里看看:

    Quote:
    <IFRAME border=0 marginWidth=0 frameSpacing=0 marginHeight=0 src=http://www.zlcp.net/sybbs/时针特效.htm frameBorder=0 width=100% scrolling=no height=200></IFRAME>




    [ 此贴被水易在2007-12-24 13:57重新编辑 ]
    顶端 Posted: 2007-12-24 13:48 | 4 楼
    水易
    相逢何必曾相识●缘聚缘散皆是缘
    级别: 论坛版主

     

    发布版块公告(以HTML代码的形式),背景你可以修改为其他图片或文字等
    顶端 Posted: 2007-12-24 15:31 | 5 楼
    水易
    相逢何必曾相识●缘聚缘散皆是缘
    级别: 论坛版主

     

    20楼的代码就行,你用吧
    顶端 Posted: 2007-12-24 15:52 | 6 楼
    水易
    相逢何必曾相识●缘聚缘散皆是缘
    级别: 论坛版主

     

    你可以自己编辑一个页面,把特效代码放进去,给个文件你看看,我刚简单地用我过去做的音画放进这个代码后的。下载解压后双击就可以在浏览器里看到效果。

    说这个的目的主要是想告诉你,这个特效可以根据自己的喜好随机使用。
    附件: 时针特效.rar (3 K) 下载次数:1
    顶端 Posted: 2007-12-24 17:04 | 7 楼
    水易
    相逢何必曾相识●缘聚缘散皆是缘
    级别: 论坛版主

     

    顶端 Posted: 2007-12-24 17:11 | 8 楼
    水易
    相逢何必曾相识●缘聚缘散皆是缘
    级别: 论坛版主

     

    Quote:
    引用第32楼mommeng于2007-12-24 17:32发表的  :



    我还是没怎么会吖  可以+我QQ 教教我怎么做吗? 234699995


    你加入这个群吧 24193939,在那里再说。呵呵
    顶端 Posted: 2007-12-24 17:49 | 9 楼
    帖子浏览记录 版块浏览记录
    Uu1001免费论坛官方站 » 站长交流


    Time now is:09-07 11:09, Gzip enabled 浙ICP备06052510号
    Powered by PHPWind & Uu1001 v2.0 Certificate Code © 2003-08 PHPWind.com Corporation