javascript不按顺序修改样式属性

javascript不按顺序修改样式属性,javascript,Javascript,我正在尝试使用淡入淡出功能实现一个照片库。我已经经历了很多,所以让我们举个例子 我一直在尝试让我的代码在IE8中工作,在IE8中,不透明度为0的堆叠图像的数量使动画变慢(单个图像平滑褪色)。解决此问题的方法是在图像淡出后在图像上执行显示:none。现在出现的问题是,我的图像会立即消失,而不是在完成动画之后。有办法解决这个问题吗 我修改的演示代码: <div class="button" onclick=" if(boole) document.getElement

我正在尝试使用淡入淡出功能实现一个照片库。我已经经历了很多,所以让我们举个例子

我一直在尝试让我的代码在IE8中工作,在IE8中,不透明度为
0的堆叠图像的数量使动画变慢(单个图像平滑褪色)。解决此问题的方法是在图像淡出后在图像上执行
显示:none
。现在出现的问题是,我的图像会立即消失,而不是在完成动画之后。有办法解决这个问题吗

我修改的演示代码:

<div class="button" onclick="

    if(boole)
        document.getElementById('fade').style.display = '';

    fadeEffect.init('fade', boole?1:0);

if(!boole)
        document.getElementById('fade').style.display = 'none';

    boole = !boole;

">Fade In</div>
淡入

我不知道是什么提供了fadeEffect函数,但大多数JS effects库都有回调功能——在效果完成时调用函数。如果fadeEffect有这样的功能,您应该将
display:none
内容放入回调函数中。效果完成后,将调用回调函数,然后退出。

您将无法使用淡入淡出效果代码执行此操作。你需要一个允许你传入回调的函数,否则你需要修改这个函数来允许它code@Pointy所以我在clearInterval(this.si)之后放置了一个
警报(“foo”)
并在动画之后运行。当我把一个显示器放在那里:没有,我的大便立刻消失了。那么这个问题与回调有什么关系呢?淡入淡出效果代码是通过一系列计时器来完成工作的。如果它为您提供了一种传递“完成时执行此操作”回调的方法,那么您可以在该回调中更新样式代码。实际上,您对“init”方法的调用只是开始淡入淡出过程,但在执行“init”调用后的下一个语句后很长一段时间内,它将在后续步骤中完成。@Pointy是的,我理解这一点。我的问题是为什么
alert(“foo”)
会在动画之后运行,但显示属性会立即被修改。