帮忙解释这段代码的作用~!

h123hu 2012-02-01 04:57:34


function css(obj, attr, value)
{
if(arguments.length==2)
return parseFloat(obj.currentStyle?obj.currentStyle[attr]:document.defaultView.getComputedStyle(obj, false)[attr]);
else if(arguments.length==3)
switch(attr)
{
case 'width':
case 'height':
case 'paddingLeft':
case 'paddingTop':
case 'paddingRight':
case 'paddingBottom':
value=Math.max(value,0);
case 'left':
case 'top':
case 'marginLeft':
case 'marginTop':
case 'marginRight':
case 'marginBottom':
obj.style[attr]=value+'px';
break;
case 'opacity':
obj.style.filter="alpha(opacity:"+value*100+")";
obj.style.opacity=value;
break;
default:
obj.style[attr]=value;
}

return function (attr_in, value_in){css(obj, attr_in, value_in)};
}



偶正在自学JS,在研究别人的运动效果的时候,
看到这段代码,不明白是起什么作用的,
麻烦解释一下,谢谢了哈,
最好详细一点
...全文
231 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
h123hu 2012-02-04
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wzs_xyz 的回复:]
是因为调用css后又返回了一个函数,而这个返回函数又调用css函数,这样就形成了一个循环,可以无限次
作用就是上面写的那样,一行代码给多个属性赋值(每多一个括号都多调用了一次函数),看代码应该不难明白的
[/Quote]

谢谢你的耐心讲解,偶明白了
谢谢
h123hu 2012-02-03
  • 打赏
  • 举报
回复

return function (attr_in, value_in){css(obj, attr_in, value_in)};


那最后这个返回的这个方法 function (attr_in, value_in)
这是起什么作用的?
未知数 2012-02-03
  • 打赏
  • 举报
回复
是因为调用css后又返回了一个函数,而这个返回函数又调用css函数,这样就形成了一个循环,可以无限次
作用就是上面写的那样,一行代码给多个属性赋值(每多一个括号都多调用了一次函数),看代码应该不难明白的
h123hu 2012-02-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wzs_xyz 的回复:]
有了这个返回值函数可以这样调用:
css(div,width,100)(height,200)(left,200)...给多个属性赋值
[/Quote]

有点不太明白
意思是说,等同于同时循环给对象的多个赋值?
qq591258036 2012-02-03
  • 打赏
  • 举报
回复
二楼正解~
未知数 2012-02-03
  • 打赏
  • 举报
回复
有了这个返回值函数可以这样调用:
css(div,width,100)(height,200)(left,200)...给多个属性赋值
未知数 2012-02-02
  • 打赏
  • 举报
回复
作用是为html元素添加样式属性
obj为html元素对象,attr为属性名称,value为属性值
匿名旅途 2012-02-02
  • 打赏
  • 举报
回复
同意三楼
badpp1020 2012-02-02
  • 打赏
  • 举报
回复
同意二楼
大神送一血 2012-02-01
  • 打赏
  • 举报
回复
两个参数的时候返回css的风格,三个参数的时候设置css的风格
三石-gary 2012-02-01
  • 打赏
  • 举报
回复
应该是定义CSS的

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧