2014-12-04 62 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