2017-07-26 29 views
2

我想创建一个功能在纯javascript,以使一些图像出现和消失在一定的条件下。所以分配给图像他们的ID和创建此功能:(整体功能被删除只是为了让事情更简单,因为他们不与当前问题发生冲突) 当我调用该函数时,图像成功地从屏幕上消失,如预期。在全局范围内声明一个图像变量没有得到分配,但在函数内

function imageOff() 
{ 
var img = document.getElementById("theimage"); 
img.style.opacity = "0"; 
} 

但是,如果我声明这一点,功能之外作为一个全球性的图像不dissapear,我也得到变量是不确定的,当我尝试CONSOLE.LOG(IMG):

var img = document.getElementById("theimage"); 
img.style.opacity = "0"; 

我需要这个的原因是,只要用户一次访问该网站就可以指定该图像的不透明度值,而不是每次调用该函数时都执行该值。

+2

你是否在dom准备好后执行这段secound代码? – Matx132

+0

我想你是在dom完全加载之前分配“img”变量的。 – baj9032

+0

谢谢!这真的很有帮助! –

回答

2

问题是,在加载DOM之前您正在分配变量img。

var img = document.getElementById("theimage"); 

如果地方/包所有窗口的onload功能代码的,问题应该可以解决,因为在onload可确保DOM负载。

window.onload = function(){ 

var img = document.getElementById("theimage"); 

    ... your functions().. 

} 

当你放置在函数中时它正在工作,因为在你执行函数时DOM被加载。

+0

谢谢!这真的很有帮助! –

相关问题