2013-06-27 90 views
0

美好的一天!诚实地说,这个问题有点复杂。我想知道为什么下面的代码行不起作用:用javascript设置图像不透明度

pic.style.opacity = toString((5-z)/10); 

为什么我认为它应该工作?

  • 不透明构件变量是一个字符串,它必须是一个字符串,因此只要“的toString”方法是有系统计算应当变成串中表达后,因此它应该是可行的。

注:Z为具有从0到4

变化值如果有人想测试自己的整数:

<!DOCTYPE html> 

    <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta charset="utf-8" /> 
    <title></title> 
    <style> 
     #asd{ 
      background-image : url(fry.jpg); 
      margin-left:20%; 
      margin-top:20%; 
      height:100px; 
      width:100px; 
      } 
    </style> 
</head> 
<body> 
    <div id="asd"></div> 
</body> 
</html> 
<script 
var z = 3; 
function foo(){ 
    document.getElementById("asd").style.opacity = toString((5-z)/10); 
} 
foo(); 
    </script> 
+0

你不需要的ToString(); pic.style.opacity =((5-z)/ 10);另外,.toString()以相反的方式工作,((5-z)/ 10).toString() – frenchie

回答

4

你不”需要toString

只要做到:

document.getElementById("asd").style.opacity = (5-z)/10; 

您未使用toString正确反正。如果您想在任何地方使用它,这样做的:

var number = 42.0; 
var string = number.toString(10); 

10是可选的,默认情况下。例如,您可以使用2在双系统中转换。

+0

是的,它修复了它。谢谢。 – Bloodcount

+1

一个JSFiddle来显示它的工作原理(我添加了背景色来说明效果,因为图像不存在)。 http://jsfiddle.net/9tUjK/ –

+0

如果这解决了问题,你应该选择它。 –

1

在试图访问/设置任何元素的不透明度之前,您需要等待文档加载。如果您使用的是jQuery,请检查javascript或$(document).ready()的onload事件。

顺便说一句 - 你开script标签有遗漏>签署

2

你无意中调用window.toString()toString方法作为您想要转换的项目的方法调用。

另外,你不需要它。去掉它。