请教怎么修改下面的方法,实现我想要的功能...

luoxp520 2007-12-11 02:21:13

<script language="JavaScript" type="text/JavaScript">
<!--

var b = 1;
function alpha3(obj)
{
if(b<100)
{
b = b+1;
}
obj.filters.alpha.opacity=b;
setTimeout("alpha3("+obj+")",10);
}
//-->
</script>

...全文
174 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
nicholsky 2007-12-11
  • 打赏
  • 举报
回复
mingxuan3000给的帖子让我又学习了一种用法,受益不浅哈。setTimeout里面原来可以用function(){}这样的形式。

以下这个可以传递this或this.id。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>鼠标经过时Layer1由淡变明</title>
<script language="JavaScript" type="text/JavaScript">
var b = 1;
function alpha3(obj){
if(b<100){ b++ }else{return alert("渐变测试完成") }
o = typeof(obj)=="string" ? document.getElementById(obj) : obj;
o.filters.alpha.opacity=b;
setTimeout(function(){alpha3(obj)},10);
}
</script>
</head>
<body>
<div id="Layer1" style="position:absolute; width:200px; height:200px; left: 254px; top: 154px; background-color: #666666; layer-background-color: #666666; border: 1px none #000000;filter:Alpha(Opacity=11);" onMouseOver="alpha3(this);">
<div style="position:absolute; width:200px; height:200px; left: 50px; top: 50px; display:none; background-color: #666666;filter:Alpha(Opacity=11);">此处显示新 Div 标签的内容</div>
</div>
</body>
</html>
luoxp520 2007-12-11
  • 打赏
  • 举报
回复
也谢谢mingxuan3000 的例子。。
mingxuan3000 2007-12-11
  • 打赏
  • 举报
回复
var b = 1;
function alpha3(obj){
if(b<4){ b++ }else{return}
alert(obj.length)
setTimeout(function(){alpha3(obj)},500);
}
var cc=['1','2']
alpha3(cc)



不是给了一个连接么?
luoxp520 2007-12-11
  • 打赏
  • 举报
回复
谢谢 nicholsky 的方法
要变才能变嘛
Go 旅城通票 2007-12-11
  • 打赏
  • 举报
回复
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>鼠标经过时Layer1由淡变明</title>
<script language="JavaScript" type="text/JavaScript">
<!--

var b = 1;
//改为传递id,然后使用document.getElementById("控件ID");
function alpha3(obj)
{
if(b<100)
{
b = b+1;
}
document.getElementById(obj).style.filter="alpha(opacity="+b+")";
setTimeout("alpha3('"+obj+"')",10);
}
//-->
</script>
</head>

<body>

<div id="Layer1" style="position:absolute; width:200px; height:200px; left: 254px; top: 154px; background-color: #666666;

layer-background-color: #666666; border: 1px none #000000;filter:Alpha(Opacity=11);" onMouseOver="alpha3(this.id);">
<div style="position:absolute; width:200px; height:200px; left: 50px; top: 50px; display:none; background-color:

#666666;filter:Alpha(Opacity=11);">此处显示新 Div 标签的内容</div>
</div>
</body>
</html>
nicholsky 2007-12-11
  • 打赏
  • 举报
回复
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>鼠标经过时Layer1由淡变明</title>
<script language="JavaScript" type="text/JavaScript">
var b = 1;
function alpha3(obj){
if(b<100){ b++ }else{return alert("渐变测试完成") }
o = typeof(obj)=="string" ? document.getElementById(obj) : obj;
o.filters.alpha.opacity=b;
setTimeout("alpha3('"+obj+"')",10);
}
</script>
</head>
<body>
<div id="Layer1" style="position:absolute; width:200px; height:200px; left: 254px; top: 154px; background-color: #666666; layer-background-color: #666666; border: 1px none #000000;filter:Alpha(Opacity=11);" onMouseOver="alpha3(this.id);">
<div style="position:absolute; width:200px; height:200px; left: 50px; top: 50px; display:none; background-color: #666666;filter:Alpha(Opacity=11);">此处显示新 Div 标签的内容</div>
</div>
</body>
</html>


主要是用setTimeout去传递操作object我没试过,因为以前我试过传递event行不通,所以全部改成传递string
luoxp520 2007-12-11
  • 打赏
  • 举报
回复
我还有其它的地方用到obj
所以这里只是一个简化的例子而已
还请兄台帮我改改。。
qiuming0306 2007-12-11
  • 打赏
  • 举报
回复
写一个计时器,在计时器内调用这个函数
nicholsky 2007-12-11
  • 打赏
  • 举报
回复
你传递this.....好像setTimeout不能操作object的吧,传递this.id,然后函数内部用document.getElementById(obj)
mingxuan3000 2007-12-11
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20071210/16/3182a05a-8fcf-4473-9fc5-695adb75bb9f.html
luoxp520 2007-12-11
  • 打赏
  • 举报
回复
我这是的obj是对象,不是字符串。。。

<script language="JavaScript" type="text/JavaScript">
var b = 1;
function alpha3(obj){
if(b<100){ b++ }else{return}
obj.filters.alpha.opacity=b;
setTimeout("alpha3('"+obj+"')",10);
}
</script>
luoxp520 2007-12-11
  • 打赏
  • 举报
回复
nicholsky 兄台还是不行。。 


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>鼠标经过时Layer1由淡变明</title>
<script language="JavaScript" type="text/JavaScript">
<!--

var b = 1;
function alpha3(obj)
{
if(b<100)
{
b = b+1;
}
obj.filters.alpha.opacity=b;
setTimeout("alpha3('"+obj+"')",10);
}
//-->
</script>
</head>

<body>

<div id="Layer1" style="position:absolute; width:200px; height:200px; left: 254px; top: 154px; background-color: #666666; layer-background-color: #666666; border: 1px none #000000;filter:Alpha(Opacity=11);" onMouseOver="alpha3(this);">
<div style="position:absolute; width:200px; height:200px; left: 50px; top: 50px; display:none; background-color: #666666;filter:Alpha(Opacity=11);">此处显示新 Div 标签的内容</div>
</div>
</body>
</html>

luoxp520 2007-12-11
  • 打赏
  • 举报
回复
思路是这样的,但是语法出错了,请教如何修改:

<script language="JavaScript" type="text/JavaScript">
<!--

var b = 1;
function alpha3(obj)
{
if(b<100)
{
b = b+1;
}
obj.filters.alpha.opacity=b;
setTimeout("alpha3("+obj+")",10);
}
//-->
</script>
nicholsky 2007-12-11
  • 打赏
  • 举报
回复
当obj不是数字类型时,需要用引号。

<script language="JavaScript" type="text/JavaScript">
var b = 1;
function alpha3(obj){
if(b<100){ b++ }else{return}
obj.filters.alpha.opacity=b;
setTimeout("alpha3('"+obj+"')",10);
}
</script>


另外还要做个判断,例如当b>100时跳出循环,不然就会成了一个死循环。
luoxp520 2007-12-11
  • 打赏
  • 举报
回复
每隔一段时间
执行一遍函数
tengfei3003 2007-12-11
  • 打赏
  • 举报
回复
你要实现啥功能啊?
hztgcl1986 2007-12-11
  • 打赏
  • 举报
回复

setInterval






87,921

社区成员

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

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