我想淡出一个元素(将其不透明度转换为0),然后在完成时从DOM中删除元素.
在jQuery中,这是直截了当的,因为您可以在动画完成后指定"删除".但是,如果我希望使用CSS3过渡动画,那么无论如何都要知道过渡/动画何时完成?
问题的标题表达了我认为是我的具体案例背后的最终问题.
我的情况:在一个点击处理程序中,我想在繁忙的函数开始之前使图像可见(一个'加载'动画).然后我想在函数完成后再次使它不可见.而不是我所期望的,我意识到图像永远不会变得可见.我想这是由于浏览器等待处理程序结束,然后才能进行任何重绘(我确信有很好的性能原因).
代码(也在这个小提琴:http://jsfiddle.net/JLmh4/2/)
HTML:
<img id="kitty" src="http://placekitten.com/50/50" style="display:none">
<div><a href="#" id="enlace">click to see the cat</a> </div>
Run Code Online (Sandbox Code Playgroud)
JS:
$(document).ready(function(){
$('#enlace').click(function(){
var kitty = $('#kitty');
kitty.css('display','block');
// see: http://unixpapa.com/js/sleep.html
function sleepStupidly(usec)
{
var endtime= new Date().getTime() + usec;
while (new Date().getTime() < endtime)
;
}
// simulates bussy proccess, calling some function...
sleepStupidly(4000);
// when this triggers the img style do refresh!
// but not before
alert('now you do see it');
kitty.css('display','none');
});
});
Run Code Online (Sandbox Code Playgroud)
我alert在sleepStupidly …
在使用jQuery css函数应用CSS更改后,我想要执行一些计算.此方法是否等到完全应用CSS更改后,是否重新绘制了元素?