该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
setTimeout 是个异步函数··· 异步! 异步 !
为什么会在setTimeout 函数里面取到opacity的值跟时间没卵关系···
你把if else 语句块注释掉 setTimeout 里面一样取不到opacity 的值
首先你打印event.target.style 浏览器会告诉你 CSSStyleDeclaration 这个对象有哪些成员,
就是下面这些一长串然后你会发现所有的值都未空!!! 是的都为空 ~
解决办法:
1. 在你的dom元素里面手动添加默认值 style:"opacity=1"
2. 使用 window.getComputedStyle(event.target)["opacity"] 可以动态的获取已渲染的元素的样式值
3. ***你为什么不用class 去定义两个样式,然后在js的逻辑里面只控制这个两个class ???
尽可能的不要在JS逻辑里面操控样式, window.getComputedStyle 在IE8及以不兼容,可以使用
event.target.currentStyle.xx
碰到问题其实多研究一下,在控制台多答应下各个对象都是什么,网上面多查查资料。
论坛上面好多低级问题真的懒得去回答,作为老鸟的建议新手自己研究问题远远比向论坛提个问题让别人告诉你答案或者为什么有意义的多。
吐槽完毕······
console.log("target.style:",event.target.style)
控制台:
CSSStyleDeclaration {alignContent: "", alignItems: "", alignSelf: "", alignmentBaseline: "", all: "", …}
alignContent:""
alignItems:""
alignSelf:""
alignmentBaseline:""
······ 中间太长省略······
webkitUserDrag:""
webkitUserModify:""
webkitWritingMode:""
whiteSpace:""
widows:""
width:""
willChange:""
wordBreak:""
wordSpacing:""
wordWrap:""
writingMode:""
x:""
y:""
zIndex:""
zoom:""