javascript关于div的style属性设置及修改

请问:下面部分,调用后,执行的过程中,进入moveXY()函数后,在getlocal()函数里面可以访问this.pic.style.top,但是为什么进入setloca... 请问:下面部分,调用后,执行的过程中,进入moveXY()函数后,在getlocal()函数里面可以访问this.pic.style.top,但是为什么进入setlocal就不能访问pic.style.left?

//创建mario,beef对象
var mario=new Pic("mymario");
//图片对象

function Pic(name){
this.name=name;
this.x=10;//初始位置
this.y=10;
this.pic=$1(this.name);

}

Pic.prototype.move=moveXY;
Pic.prototype.getLocal=getLocation;
Pic.prototype.setLocal=setLocation;
//获取图片的位置信息
function getLocation(){
this.pic=document.getElementById(this.name);

this.y=this.pic.style.top;
this.y=parseInt(this.y.substring(0,this.y.length-2));//利用substring方法截取30px字符中的数字,并通过parseInt转换为数字
this.x=this.pic.style.left;
this.x=parseInt(this.x.substring(0,this.x.length-2));

}
//设置图片的位置
function setLocation(){

//var pic=document.getElementById(this.name);
this.pic.style.left=this.x+"px";
this.pic.style.top=this.y+"px";

}
//移动
function moveXY(direct,speed){
//移动 0->up 1->right 2->down 3->left
var xx=10;
var yy=10;
//获取当前mario的位置
this.getLocal();

xx=this.x;
xx=this.y;
//根据按键移动
switch(direct){
case '0'://上
this.y-=speed;
break;
case '1'://右
this.x+=speed;
break;
case '2'://下
this.y+=speed;
break;
case '3'://左
this.x-=speed;
break;
}
this.setLocal();

}

/*div部分*/
<div id="mymario" style="left:50px;top:50px;position:absolute;" border="1px" >
<img style="width:50px ;length:40px " src="mario.jpg" alt="" />
</div>
展开
 我来答
你以为你以为de
2014-11-26 · 知道合伙人软件行家
你以为你以为de
知道合伙人软件行家
采纳数:503 获赞数:1339
某培训机构毕业,大专学位。工作2年,喜欢百度知道答题,可以互相学习共通过进步。

向TA提问 私信TA
展开全部
this.pic.style.top, pic.style.left

你这里是顺序执行啊
追问
var那个定义取消之后,就直接用this指针了,代表使用这个方法的对象,这里就会根据使用moveXY函数的对象而变化。如果不用this就必须定义var pic,这个我两种都试过了,好像都不行,取不到pic.style
追答
为啥取消呢》
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式