延迟转换持续时间的函数

时间:2011-08-18 02:41:18

标签: jquery animation css3 delay

如何在等待css3转换结束时使此脚本延迟350毫秒?

    <script type="text/javascript">
        $(document).ready(function() {
            var last = "";
            $("#thumbs a").click(function() {
                event.preventDefault();
                var graphic = $(this).attr("href");
                if(last != graphic) {
                    $("#placeholder").before( "<img src=\"" + graphic + "\" />" );
                    $("#mask").css("marginTop","-=450px");
                    last = graphic;
                }
            });
        });
    </script>

基本上,当你点击它时,它应该检查它是否在最后350毫秒内被点击了,如果有的话,什么都不做。

我听说过transitionend函数,但我无法弄清楚如何实现它。

2 个答案:

答案 0 :(得分:0)

我会做这样的事情:

var clickable = true;
var timer;
$('#thumbs a').click(function(event){
    event.preventDefault();
    if(clickable){
      do stuff!
    }else{
        clearTimeout(timer);
    }
    clickable = false;        
    timer = setTimeout(function(){
        clickable = true;
    }, 350);

});

答案 1 :(得分:0)

在document.ready之后,将您的代码包含在函数中。也许“function wait(){... code here ...}然后使用settimeout,例如var t = setTimeout(wait,350);

希望这会有所帮助。如果没有,请尝试向CSS转换对象添加一个加载处理程序,然后在加载回调函数中放入一个setTimeout函数。它应该等待加载对象,并设置一个计时器以在加载对象350毫秒后启动你的函数。