为了账号安全,请及时绑定邮箱和手机立即绑定

关于这行代码的解释?谁帮帮我啊。在下跪求

关于这行代码的解释?谁帮帮我啊。在下跪求

慕粉3686312 2016-11-29 21:02:30
<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> </head> <body> </body> </html> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>移动效果(按轨迹移动)</title> <style type="text/css"> body,div{margin:0;padding:0;} div{position:absolute;width:66px;height:45px;background:url(img/1.gif) no-repeat;top:100px;left:50px;} p,input{margin:10px;} </style> <script type="text/javascript"> window.onload = function () {     var oDiv = document.getElementsByTagName("div")[0];     var aInput = document.getElementsByTagName("input");     var oP = document.getElementsByTagName("p")[0];     var i = 0;          aInput[0].onclick = function (event)     {                 (event || window.event).cancelBubble = true;         clearEvent();         this.value += "(已激活)";         oP.innerHTML = "鼠标点击页面, 人物将移动至鼠标位置!";         document.onclick = function (event)         {             var event = event || window.event;             oDiv.style.background = "url(img/2.gif) no-repeat";             startMove(oDiv, {x:event.clientX, y:event.clientY}, function(){oDiv.style.background = "url(img/1.gif) no-repeat"});             return false;         }         };          aInput[1].onclick = function (event)     {                 (event || window.event).cancelBubble = true;         clearEvent();         this.value += "(已激活)";         oP.innerHTML = "按住鼠标左键,在页面划动,人物将按照鼠标轨迹移动。"         var aPos = [{x:oDiv.offsetLeft, y:oDiv.offsetTop}];         document.onmousedown = function (event)         {             var event = event || window.event;                         aPos.push({x:event.clientX, y:event.clientY});             document.onmousemove = function (event)             {                 var event = event || window.event;                 aPos.push({x:event.clientX, y:event.clientY});                     return false;             }             return false;         }         document.onmouseup = function ()         {             document.onmousemove = null;             oDiv.style.background = "url(img/2.gif) no-repeat";                     var timer = setInterval(function ()             {                 if(aPos.length == 0)                 {                     clearInterval(timer);                     oDiv.style.background = "url(img/1.gif) no-repeat";                     return;                     };                 oDiv.style.left = aPos[0].x + "px";                 oDiv.style.top = aPos[0].y + "px";                 aPos.shift();             }, 30);         };     }          function clearEvent()     {         document.onclick = null;         document.onmousedown = null;         document.onmousemove = null;         document.onmouseup = null;         for (i = 0; i < aInput.length; i++)         {             aInput[i].value = aInput[i].value.replace("(已激活)", "");             aInput[i].onmousedown = aInput[i].onmouseup = function (event)             {                 (event || window.event).cancelBubble = true;                 };         }     } }; function startMove(obj, oTarget, fnEnd) {     clearInterval(obj.timer);     obj.timer = setInterval(function ()     {         doMove(obj, oTarget, fnEnd)         }, 30)     } function doMove(obj, oTarget, fnEnd) {     var iX = (oTarget.x - obj.offsetLeft) / 5;     var iY = (oTarget.y - obj.offsetTop) / 5;     iX = iX > 0 ? Math.ceil(iX) : Math.floor(iX);     iY = iY > 0 ? Math.ceil(iY) : Math.floor(iY);     if (oTarget.x == obj.offsetLeft && oTarget.y == obj.offsetTop)     {         clearInterval(obj.timer);         fnEnd && fnEnd();         }     else     {         obj.style.left = obj.offsetLeft + iX + "px";         obj.style.top = obj.offsetTop + iY + "px";         } } </script> </head> <body> <input type="button" value="根据鼠标点击位置移动" /><input type="button" value="根据标鼠标轨迹移动" /> <p>请点击按钮激活功能!</p> <div></div> </body> </html>var aPos = [{x:oDiv.offsetLeft, y:oDiv.offsetTop}]这个数组嘛?这行代码与aPos.push({x:event.clientX, y:event.clientY});之间是什么关系 或者是怎么运行的呢?有什么作用啊 还有就是        oDiv.style.left = aPos[0].x + "px";                 oDiv.style.top = aPos[0].y + "px"; 这两行代码是怎么运行的?这个x,y表示的是数值嘛?求解答
查看完整描述

1 回答

?
一毛钱

TA贡献156条经验 获得超57个赞

这个是数组,aPos是定义了一个数组

aPos.push()是向数组中添加元素

他们之间的关系是一个是定义数组,一个数组的方法(添加数组元素)

XY 指的是偏移XY轴的值

查看完整回答
反对 回复 2016-11-29
  • 慕粉3686312
    慕粉3686312
    var aPos = [{x:oDiv.offsetLeft, y:oDiv.offsetTop}]这个{}里面表示的是一个数值呢,还是x,y分开数值呢? aPos[0].x这个是怎么取值的呢?取的是第一个数值, aPos[0].x=oDiv,offsetLeft???是不是这样理解的呢?
  • 一毛钱
    一毛钱
    你应该看看面向对象编程{}里面是一个对象。对象里面有两个成员变量,这两个的名字是XY,X的值是oDiv.offsetLeft Y的值是oDiv.offsetTop,怎么说呢{}就相当于一个家,xy就相当于你和你弟弟,后面的值就相当于你的年龄
  • 慕粉3686312
    慕粉3686312
    那请问有没有关于这方面的参考书或者教程???
  • 1 回答
  • 0 关注
  • 1398 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信