闪闪的星 发表于 2011-1-22 19:25:03

酷酷的三色鼠标

在网页上实现三色围鼠标的特效,貌似只支持IE浏览器!<script language="JavaScript">
var a_Colour='ff0000';
var b_Colour='00ff00';
var c_Colour='0000ff';
var Size=50;
var YDummy=new Array(),XDummy=new Array(),xpos=0,ypos=0,ThisStep=0;step=0.03;
if (document.layers){
window.captureEvents(Event.MOUSEMOVE);
function nsMouse(evnt){
xpos = window.pageYOffset+evnt.pageX+6;
ypos = window.pageYOffset+evnt.pageY+16;
}
window.onMouseMove = nsMouse;
}
else if (document.all)
{
function ieMouse(){
xpos = document.body.scrollLeft+event.x+6;
ypos = document.body.scrollTop+event.y+16;
}
document.onmousemove = ieMouse;
}
function swirl(){
for (i = 0; i < 3; i++)
{
YDummy=ypos+Size*Math.cos(ThisStep+i*2)*Math.sin((ThisStep)*6);
XDummy=xpos+Size*Math.sin(ThisStep+i*2)*Math.sin((ThisStep)*6);
}
ThisStep+=step;
setTimeout('swirl()',10);
}
var amount=10;
if (document.layers){
for (i = 0; i < amount; i++)
{
document.write('<layer name=nsa'+i+' top=0 left=0 width='+i/2+' height='+i/2+' bgcolor='+a_Colour+'></layer>');
document.write('<layer name=nsb'+i+' top=0 left=0 width='+i/2+' height='+i/2+' bgcolor='+b_Colour+'></layer>');
document.write('<layer name=nsc'+i+' top=0 left=0 width='+i/2+' height='+i/2+' bgcolor='+c_Colour+'></layer>');
}
}
else if (document.all){
document.write('<div id="ODiv" style="position:absolute;top:0px;left:0px">'
+'<div id="IDiv" style="position:relative">');
for (i = 0; i < amount; i++)
{
document.write('<div id=x style="position:absolute;top:0px;left:0px;width:'+i/2+';height:'+i/2+';background:'+a_Colour+';font-size:'+i/2+'"></div>');
document.write('<div id=y style="position:absolute;top:0px;left:0px;width:'+i/2+';height:'+i/2+';background:'+b_Colour+';font-size:'+i/2+'"></div>');
document.write('<div id=z style="position:absolute;top:0px;left:0px;width:'+i/2+';height:'+i/2+';background:'+c_Colour+';font-size:'+i/2+'"></div>');
}
document.write('</div></div>');
}
function prepos(){
var ntscp=document.layers;
var msie=document.all;
if (document.layers){
for (i = 0; i < amount; i++)
{
if (i < amount-1)
{
ntscp['nsa'+i].top=ntscp['nsa'+(i+1)].top;ntscp['nsa'+i].left=ntscp['nsa'+(i+1)].left;
ntscp['nsb'+i].top=ntscp['nsb'+(i+1)].top;ntscp['nsb'+i].left=ntscp['nsb'+(i+1)].left;
ntscp['nsc'+i].top=ntscp['nsc'+(i+1)].top;ntscp['nsc'+i].left=ntscp['nsc'+(i+1)].left;
}
else
{
ntscp['nsa'+i].top=YDummy;ntscp['nsa'+i].left=XDummy;
ntscp['nsb'+i].top=YDummy;ntscp['nsb'+i].left=XDummy;
ntscp['nsc'+i].top=YDummy;ntscp['nsc'+i].left=XDummy;
}
}
}
else if (document.all){
for (i = 0; i <amount; i++)
{
if (i < amount-1)
{
msie.x.style.top=msie.x.style.top;msie.x.style.left=msie.x.style.left;
msie.y.style.top=msie.y.style.top;msie.y.style.left=msie.y.style.left;
msie.z.style.top=msie.z.style.top;msie.z.style.left=msie.z.style.left;
}
else
{
msie.x.style.top=YDummy;msie.x.style.left=XDummy;
msie.y.style.top=YDummy;msie.y.style.left=XDummy;
msie.z.style.top=YDummy;msie.z.style.left=XDummy;
}
}
}
setTimeout("prepos()",10);
}
function Start(){
swirl(),prepos()
}
window.onload=Start;
</script>
</head>
<body>
</body>
</html>
<!--要完成此效果把如下代码加入到<head>区域中-->
<script language="JavaScript">
var a_Colour='ff0000';
var b_Colour='00ff00';
var c_Colour='0000ff';
var Size=50;
var YDummy=new Array(),XDummy=new Array(),xpos=0,ypos=0,ThisStep=0;step=0.03;
if (document.layers){
window.captureEvents(Event.MOUSEMOVE);
function nsMouse(evnt){
xpos = window.pageYOffset+evnt.pageX+6;
ypos = window.pageYOffset+evnt.pageY+16;
}
window.onMouseMove = nsMouse;
}
else if (document.all)
{
function ieMouse(){
xpos = document.body.scrollLeft+event.x+6;
ypos = document.body.scrollTop+event.y+16;
}
document.onmousemove = ieMouse;
}
function swirl(){
for (i = 0; i < 3; i++)
{
YDummy=ypos+Size*Math.cos(ThisStep+i*2)*Math.sin((ThisStep)*6);
XDummy=xpos+Size*Math.sin(ThisStep+i*2)*Math.sin((ThisStep)*6);
}
ThisStep+=step;
setTimeout('swirl()',10);
}
var amount=10;
if (document.layers){
for (i = 0; i < amount; i++)
{
document.write('<layer name=nsa'+i+' top=0 left=0 width='+i/2+' height='+i/2+' bgcolor='+a_Colour+'></layer>');
document.write('<layer name=nsb'+i+' top=0 left=0 width='+i/2+' height='+i/2+' bgcolor='+b_Colour+'></layer>');
document.write('<layer name=nsc'+i+' top=0 left=0 width='+i/2+' height='+i/2+' bgcolor='+c_Colour+'></layer>');
}
}
else if (document.all){
document.write('<div id="ODiv" style="position:absolute;top:0px;left:0px">'
+'<div id="IDiv" style="position:relative">');
for (i = 0; i < amount; i++)
{
document.write('<div id=x style="position:absolute;top:0px;left:0px;width:'+i/2+';height:'+i/2+';background:'+a_Colour+';font-size:'+i/2+'"></div>');
document.write('<div id=y style="position:absolute;top:0px;left:0px;width:'+i/2+';height:'+i/2+';background:'+b_Colour+';font-size:'+i/2+'"></div>');
document.write('<div id=z style="position:absolute;top:0px;left:0px;width:'+i/2+';height:'+i/2+';background:'+c_Colour+';font-size:'+i/2+'"></div>');
}
document.write('</div></div>');
}
function prepos(){
var ntscp=document.layers;
var msie=document.all;
if (document.layers){
for (i = 0; i < amount; i++)
{
if (i < amount-1)
{
ntscp['nsa'+i].top=ntscp['nsa'+(i+1)].top;ntscp['nsa'+i].left=ntscp['nsa'+(i+1)].left;
ntscp['nsb'+i].top=ntscp['nsb'+(i+1)].top;ntscp['nsb'+i].left=ntscp['nsb'+(i+1)].left;
ntscp['nsc'+i].top=ntscp['nsc'+(i+1)].top;ntscp['nsc'+i].left=ntscp['nsc'+(i+1)].left;
}
else
{
ntscp['nsa'+i].top=YDummy;ntscp['nsa'+i].left=XDummy;
ntscp['nsb'+i].top=YDummy;ntscp['nsb'+i].left=XDummy;
ntscp['nsc'+i].top=YDummy;ntscp['nsc'+i].left=XDummy;
}
}
}
else if (document.all){
for (i = 0; i <amount; i++)
{
if (i < amount-1)
{
msie.x.style.top=msie.x.style.top;msie.x.style.left=msie.x.style.left;
msie.y.style.top=msie.y.style.top;msie.y.style.left=msie.y.style.left;
msie.z.style.top=msie.z.style.top;msie.z.style.left=msie.z.style.left;
}
else
{
msie.x.style.top=YDummy;msie.x.style.left=XDummy;
msie.y.style.top=YDummy;msie.y.style.left=XDummy;
msie.z.style.top=YDummy;msie.z.style.left=XDummy;
}
}
}
setTimeout("prepos()",10);
}
function Start(){
swirl(),prepos()
}
window.onload=Start;
</script>代码完,大家自己优化一下吧!
页: [1]
查看完整版本: 酷酷的三色鼠标