关于下拉菜单的问题!添加js特效时数组无效了。

bearteam11 2015-08-28 08:01:22
for (var i = 0; i < List2.length; i++) {
SomeColor = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
List1.style.backgroundColor = "#0077ee";
List2[i].style.display = "block";
List2[i].onmouseover = function () {
for (var a = 0; a <= 2; a++) {
setTimeout('List2[i].style.background = "#00' + SomeColor[5 + a] + '' + SomeColor[5 + a] + '' + SomeColor[12 + a] + '' + SomeColor[12 + a] + '";', a * 40);
}
}
List2[i].onmouseout = function () {
for (var a = 0; a <= 2; a++) {
setTimeout('List2[i].style.background = "#00' + SomeColor[7 - a] + '' + SomeColor[7 - a] + '' + SomeColor[14 - (a + 1)] + '' + SomeColor[14 - (a + 1)] + '";', a * 40);
}
}
}

我是想添加当鼠标移过,颜色是渐变出来的js特效。
所以建立了颜色库,需要a这个数组进行变化。
问题出现了,setTimeout里的List2[i],好像是无效的,我试过在onmouseover里面再弄一个i数组,也是无效的。
但是当对象换成List1这种时,就是有效果的。不过那样就不能整个菜单都有js效果了。
小弟研究半天了,新手。向各位大哥请教!
...全文
80 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bearteam11 2015-08-29
  • 打赏
  • 举报
回复
感谢2楼的大哥!!!!受教了!
天际的海浪 2015-08-28
  • 打赏
  • 举报
回复

for (var i = 0; i < List2.length; i++) {
	(function (i) {
		SomeColor = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
		List1.style.backgroundColor = "#0077ee";
		List2[i].style.display = "block";
		List2[i].onmouseover = function () {
			for (var a = 0; a <= 2; a++) {
				setTimeout('List2['+i+'].style.background = "#00' + SomeColor[5 + a] + '' + SomeColor[5 + a] + '' + SomeColor[12 + a] + '' + SomeColor[12 + a] + '";', a * 40);
			}
		}
		List2[i].onmouseout = function () {
			for (var a = 0; a <= 2; a++) {
				setTimeout('List2['+i+'].style.background = "#00' + SomeColor[7 - a] + '' + SomeColor[7 - a] + '' + SomeColor[14 - (a + 1)] + '' + SomeColor[14 - (a + 1)] + '";', a * 40);
			}
		}
	})(i);
}

87,905

社区成员

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

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