<!DOCTYPE HTML>
<html>
?<head>
? <title> trails </title>
? <meta name="Generator" content="EditPlus">
? <meta name="Author" content="">
? <meta name="Keywords" content="">
? <meta name="Description" content="">
? <style type="text/css">
? *{margin:0;padding:0;}
? .box{
??? position:absolute;
??? border:1px solid #000;
??? border-radius:5px;
??? color:green;
??? width:10px;
??? height:10px;
??? line-height:3px;
??? text-indent:3px;
??? text-align:center;
? }
? </style>
?</head>
?<body>
??? <div id="box" style="left:100px;top:100px;" class="box">.</div>
??? <div id="box1" style="left:300px;top:400px;" class="box">.</div>
??? <div id="box2" style="left:500px;top:500px;" class="box">.</div>
? <script>
??? function tracker(obj){
??? ??? this.aim = obj.aim || 'mouse'; //目标默认为鼠标
??? ??? this.aimLeft = 0;? //表示当前目标的位置
??? ??? this.aimTop = 0;
??? ??? this.trailsman = obj.trails;? //跟踪者
??? ??? this.trailsLeft = parseInt(this.trailsman.style.left,10); //表示当前跟踪者的位置
??? ??? this.trailsTop = parseInt(this.trailsman.style.top,10);
??? ??? this.setPos = function(){
??? ??? ??? var dis = Math.sqrt(Math.pow((this.aimLeft-this.trailsLeft), 2) + Math.pow((this.aimTop - this.trailsTop), 2)),
??? ??? ??? ??? angleX = (this.aimLeft-this.trailsLeft)/dis,
??? ??? ??? ??? angleY = (this.aimTop - this.trailsTop)/dis,
??? ??? ??? ??? speed = obj.speed || 2,
??? ??? ??? ??? speedX = speed * angleX,
??? ??? ??? ??? speedY = speed * angleY;
??? ??? ??? this.trailsLeft += speedX;
??? ??? ??? this.trailsTop += speedY;
??? ??? ??? this.trailsman.style.left = this.trailsLeft + 'px';
??? ??? ??? this.trailsman.style.top = this.trailsTop + 'px';
??? ??? }
??? ???
??? }
??? var box = document.getElementById('box');
??? var box1 = document.getElementById('box1');
??? var box2 = document.getElementById('box2');
??? var eg = [box,box1,box2];
??? for(var i = 0,j = eg.length;i < j;i++){
??? ??? (function(i){
??? ??? ??? eg[i] = new tracker({
??? ??? ??? ??? trails:eg[i]
??? ??? ??? });
??? ??? ??? if(eg[i].aim == 'mouse'){
??? ??? ??? ??? addEvent(document,"mousemove",function(e){
??? ??? ??? ??? ??? eg[i].aimLeft = getMos(e).x,? //表示当前目标的位置
??? ??? ??? ??? ??? eg[i].aimTop = getMos(e).y;
??? ??? ??? ??? });
??? ??? ??? }
??? ??? ??? setInterval(function(){eg[i].setPos();},10);? //设置跟踪者的位置
??? ??? })(i)
??? ???
??? }
??? function addEvent(obj,type,fn){
??? ??? if(obj.attachEvent){
??? ??? ??? obj.attachEvent("on"+type,fn);
??? ??? }else if(obj.addEventListener){
??? ??? ??? obj.addEventListener(type,fn,false);
??? ??? }
??? }
??? function getMos(e){
??? ??? var x = y = 0,
??? ??? ??? e = e || window.event,
??? ??? ??? doc = document.documentElement || document.body;
??? ??? if(e.pageX){
??? ??? ??? x = e.pageX;
??? ??? ??? y = e.pageY;
??? ??? }else{
??? ??? ??? x = e.clientX + doc.scrollLeft - doc.clientLeft;
??? ??? ??? y = e.clientY + doc.scrollTop - doc.clientTop;
??? ??? }
??? ??? return {x:x,y:y};
??? }
? </script>
?</body>
</html>
详细解决方案
javascript 追踪效果
热度:86 发布时间:2012-11-23 00:03:43.0
相关解决方案
- javascript ie6兼容的有关问题
- javascript window open在ie中设立不起作用,求解决
- javascript 字符串拼接效率有关问题
- JavaScript 自动生成图片并合并有关问题
- 不走"<script type='text/javascript'>"标签咋回事
- <script type="javascript/text">的有关问题
- 用servlet+jsp+javascript+jdbc做个简单的办公自动化系统流程,该如何解决
- 怎么打开 javascript:SetData(2010,5,10)
- javaScript = == ===区别,该怎么解决
- javascript 怎么验证name=xx.xx的radio表单
- form action 和 javascript 的提交問題解决方法
- javascript,该怎么处理
- javascript,该如何处理
- javascript 选中文字 但是保存样式 标签
- 新人求问,J2EE方向,html,css,javascript,vml要学到什么程度?解决思路
- javascript 请求servlet兑现将函数中定义的变量作为参数
- javascript 不懂,该如何处理
- javascript 不懂解决方法
- JavaScript 大局函数求实例,高分求
- javaScript 里面 如何知道Object 对象的长度
- javascript 函数调用有什么有关问题,请
- javascript 中文本框中数字如何比较
- javascript IE通过,火狐,google浏览器不过解决思路
- javascript rsa加密/java使用Cipher.getInstance("RSA/ECB/PKCS1Padding")解密,该如何处理
- IE javascript start()函数解决方案
- 关于RTMP 播放器(DELPHI C# FLASH JAVASCRIPT)解决思路
- Chrome Javascript Click 事件,该如何解决
- javascript 实出_blank跳转到新标签页有关问题
- 分享上Google Maps Javascript API v3
- javascript 绑定服务器控件 事件,该如何解决