js报错:错误: 无法获取未定义或 null 引用的属性“alpha”

JavaScript027

js报错:错误: 无法获取未定义或 null 引用的属性“alpha”,第1张

你应该是靠透明度值的设置来实现淡入淡出的效果吧. 这样来写可以兼容IE和Firefox, Chrome等浏览器:

function setOpacity (o, n) {

if (typeof (n) == "string") {

n = eval(n)

}

if (o.style.opacity != null) {

o.style.opacity = n <= 1 ? n : n / 100.0

}

else if (o.style.mozOpacity != null) {

o.style.mozOpacity = n <= 1 ? n : n / 100.0

}

else {

o.style.filter = "alpha(opacity=" + (n <= 1 ? n * 100.0 : n) + ")"

}

}

参数o为要设置透明度的页面元素对象, n为透明度的值.

Logical Operator(逻辑运算符)

&&(Logical AND)

如果第一个表达式可以被转换成 false,则返回第一个表达式,否则返回第二个表达式

(Logical OR )

如果第一个表达式可以被转换成 true,则返回第一个表达式,否则返回第二个表达式

因为逻辑表达式都是从左到右解析的,所以他们实现了一个规则叫短路求值(Short-Circuit Evaluation).

doSomething() &&doSomethingElse() 相当于 下面代码:

if( doSomething() ) {

    doSomethingElst()

}

doSomething() || doSomethingElst() 相当于:

if( !doSomething() ) {

    doSomethingElse()

}

在你这个案例中, alpha >100 &&( alpha = 100 )就相当于:

if( alpha > 100 ) {

    alpha = 100

}

同时,因为 &&前后必须是表达式,alpha = 100 并不是表达式,所以需要加括号。