2014-12-04 78 views
0

我想显示文本,同时div从右向左进行动画处理。同时运行多个函数

<script> 
$(document).ready(function() { 
    $("#test").animate({ 
       left:'5%', 
    }, {duration:8000}); 
    if($('.left').css('left') == '75%') { 
     alert("welcome"); 
    } 
    }); 
</script> 

这不是工作,而不是警告:(

+0

'警报'停止执行脚本中的任何内容 – 2014-12-04 15:03:07

+1

当元素达到75%时,是否要在动画中间显示警告? – 2014-12-04 15:05:12

+0

不一定是警报,但我想开始另一个动画。警报仅用于测试它是否会工作 – 2014-12-04 15:43:15

回答

0

警报停止执行代码,尝试用绝对或静态文本一个div。然后显示或隐藏它。

在你的代码中,动画函数会在一个线程中运行(javascript没有线程概念,但内部它与线程一起工作),然后如果块只会执行一次。

如果你想显示动画中间的东西,有一种进步的方法将会用于显示进度。你可以使用它。它可以在jQuery的1.8+

$(document).ready(function() { 
    $("#test").animate({ 
       left:'5%', 
    }, { 
     duration:8000, 
     progress: function(a, p, c) { 
      if(p==0.75)   
       console.log('welcome') 
     } 
    }); 

    }); 
0

由于使用alert将暂停我会尝试使用console.log脚本执行(你可以在控制台窗口中铬内部开发工具来查看。

<script> 
$(document).ready(function() { 
    $("#test").animate({ 
       left:'5%', 
    }, {duration:8000}); 
    if($('.left').css('left') == '75%') { 
     //alert("welcome"); 
     console.log("welcome"); 

    } 
    }); 
</script> 
+0

我在代码中犯了一个错误。 它必须是: <脚本类型= “文本/ JavaScript的”> $(文件)。就绪(函数(){ $( “#测试”)动画({ \t \t \t \t左:” 5%', },{duration:8000});如果($('#test').css('left')== '75%'){ // alert(“welcome”); console.log(“welcome”); } }); 但它仍然不起作用 – 2014-12-04 15:12:34