我在'click'事件中遇到setInterval问题。我已经产生了一个隐藏的div。但是我想要同步生成和淡入淡出并且只运行淡入淡出。
var anchor = document.getElementById('anchor');
var hiddenElement = document.getElementById('hiddenElement');
var bkgFade = document.getElementById('bkgFade');
anchor.addEventListener('click', spawnImage, false);
hiddenElement.addEventListener('click', despawnImage, false);
function spawnImage() {
setInterval(function() {
document.getElementById('hiddenElement').style.display = 'block';
document.getElementById('bkgFade').style.visibility = 'visible';
hiddenElement.style.opacity += 1.0;
} 1000);
}
function despawnImage() {
document.getElementById('hiddenElement').style.display = 'none';
document.getElementById('bkgFade').style.visibility = 'hidden';
}
答案 0 :(得分:3)
这段代码对我没有意义:
function spawnImage() {
setInterval(function() {
document.getElementById('hiddenElement').style.display = 'block';
document.getElementById('bkgFade').style.visibility = 'visible';
F hiddenElement.style.opacity += 1;
});
clearInterval();
}
它有很多不妥之处。
setInterval()
设置时间。setInterval()
的返回值。clearInterval()
传递任何内容。它应该从setInterval()
传递返回值。它不会像你拥有它那样做任何事情。F hiddenElement.style.opacity += 1;
setInterval()
然后立即clearInterval()
opacity
将无法在某些版本的IE中使用。document.getElementById('hiddenElement')
,在另一个地方使用hiddenElement
。如果hiddenElement
有效,请使用这两个地方。如果没有,请使用document.getElementById('hiddenElement')
这两个地方。如果您更详细地描述了使用此代码实现的目标,那么人们可能会帮助您提供正确的代码。
我强烈建议使用像jQuery或YUI这样的库来完成动画,方式更容易使用并使其跨浏览器工作。