小眼睛
很喜欢 gnome 小眼睛,于是参照着画了两只,把 google eyes 的代码改了改放到网页上来
<table cellpadding=0 cellspacing=0 border=0 align=center>
<tr>
<td background="http://mitelika.com/images/eyes/1.png" no-repeat>
<div>
<img src="http://mitelika.com/images/eyes/2.png" border="0" width="6" height="7"style="position:relative;left:11px;top:14px;"id="WEBEYES_pupil0">
</div>
</td>
<td background="http://mitelika.com/images/eyes/1.png" no-repeat>
<div>
<img src="http://mitelika.com/images/eyes/2.png" border="0" width="6" height="7"style="position:relative;left:11px;top:14px;"id="WEBEYES_pupil1">
</div>
</td>
</tr>
</table>
javascript:
<script type="text/javascript">
<!-- Adopted from google eyes by mikel -->
<!-- With thanks to Keith Packard and Jeremy Huxtable and Dylan Parker -->
var WEBEYES = {
MAX_DIST_X : 5,
MAX_DIST_Y : 8,
EYE_RADIUS_X : 10,
EYE_RADIUS_Y : 12,
PUPIL_RADIUS_X : 3,
PUPIL_RADIUS_Y : 3,
pupils : [],
init : function() {
var app = WEBEYES;
// setup our mousemove handler
if (document.addEventListener) {
document.addEventListener("mousemove", app.moveEyes, true);
} else if (document.attachEvent) {
document.attachEvent("onmousemove", app.moveEyes);
}
// grab references to the pupils
app.pupils = [ document.getElementById("WEBEYES_pupil0"),document.getElementById("WEBEYES_pupil1") ];
},
moveEyes : function(e) {
if (!e) e = window.event;
var app = WEBEYES;
for (var i = 0; i < app.pupils.length; i++) {
var pupil = app.pupils[i];
// The middle points of the eyes
var midx = app.getPagePos(pupil.parentNode,true) + app.EYE_RADIUS_X;
var midy = app.getPagePos(pupil.parentNode,false) + app.EYE_RADIUS_Y;
// The distX/distY from eye middles to the mouse
var distX = e.clientX + document.documentElement.scrollLeft - midx;
var distY = e.clientY + document.documentElement.scrollTop - midy;
// The absolute distance from eye middles to the mouse
var dist = Math.sqrt(Math.pow(distX, 2) + Math.pow(distY, 2));
// The relative distance from eye middles to the eyeball edge
var angle = Math.asin(distY / dist);
var relaX = Math.pow((Math.cos(angle) * app.MAX_DIST_Y), 2) / (1 - Math.pow((Math.cos(angle) / app.MAX_DIST_X), 2) * (Math.pow(app.MAX_DIST_X, 2) - Math.pow(app.MAX_DIST_Y, 2)));
var relaY = Math.pow((Math.sin(angle) * app.MAX_DIST_X), 2) / (1 + Math.pow((Math.sin(angle) / app.MAX_DIST_Y), 2) * (Math.pow(app.MAX_DIST_X, 2) - Math.pow(app.MAX_DIST_Y, 2)));
var reladist = Math.sqrt(relaX + relaY);
if (dist > reladist) {
// mouse out of eyeball, scale distX/distY to be at eyeball edge
var scale = reladist / dist;
distX *= scale; distY *= scale;
}
// Place the pupil appropriately
pupil.style.left = parseInt(distX + app.EYE_RADIUS_X - app.PUPIL_RADIUS_X) + "px";
pupil.style.top = parseInt(distY + app.EYE_RADIUS_Y - app.PUPIL_RADIUS_Y) + "px";
}
},
// get page coords for an element
getPagePos : function(el, left) {
var val=0;
while(el != null) {
val += el["offset"+(left?"Left":"Top")];
el = el.offsetParent;
}
return val;
}
};
WEBEYES.init();
</script>
Tags: google, 代码
这,首先,我看不懂。
然后,我还是喜欢那个大眼睛,我深度近视眼,太小我看不清……
哈哈,我也最喜欢gnome的小眼睛了,只可惜不用gnome了,看不到小眼睛了,伤心了……
我也是因为看不到才做了个的。。