2017-03-05 100 views
0

我不知道我是否可以隨意點擊動畫元素。我有這樣的代碼:Jquery:隨機點擊動畫元素

$('.div').click(function(){ 
     if($(this).hasClass('active')){ 
      var divAnim=$(this).animate({bottom:'+=600', left:'+=600'},1000); 
      var rand=Math.floor(Math.random() * divAnim); 
      rand; 
     } 
     return true; 

    }); 

但是結果是一樣的,沒有行「Math Random」。是否有可能實現一個隨機動畫來改變默認值?

+0

什麼部分你想隨機?該位置應該是隨機的(即'+ = 600')還是時間('1000'),或者兩者兼而有之?或者是其他東西? – simbabque

+0

我更多的位置 – glassraven

+0

也許如果我設置隨機值正確的這些值? – glassraven

回答

1

這個怎麼樣? (P.在我的手機上打字)

$('.div').click(function(){ 
    if($(this).hasClass('active')){ 

var randomHeight= Math.floor(Math.random() * $(window).height()); 


var randomWidth= Math.floor(Math.random() * $(window).width()); 


     $(this).animate({bottom: randomHeight, left:  randomWidth},1000); 

    } 
    return true; 

    }); 
+0

太棒了!它的工作原理和理由,謝謝 – glassraven

1

這是jQuery網站的示例片段。注意CSS部分。你的div容器需要一個絕對的位置,所以它知道從哪裏開始。

function makeNewPosition(){ 
 
    
 
    // Get viewport dimensions (remove the dimension of the div) 
 
    var h = $('#block_wrapper').height() - 50; 
 
    var w = $('#block_wrapper').width() - 50; 
 
    
 
    var nh = Math.floor(Math.random() * h); 
 
    var nw = Math.floor(Math.random() * w); 
 
    
 
    return [nh,nw];  
 
    
 
} 
 
$("#go").click(function() { 
 

 
    var pos = makeNewPosition(); 
 
    $('#block').animate({ top: pos[0], left: pos[1] }); 
 
    
 
});
#block_wrapper { 
 
    position: relative; 
 
    width:600px; 
 
    height:400px; 
 
    background:#f4f4f4; 
 
    } 
 
    #block { 
 
    position: absolute; 
 
    background-color: #abc; 
 
    left: 50px; 
 
    width: 50px; 
 
    height: 50px; 
 
    margin: 5px; 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="go">&raquo; Run</button> 
 
<div id="block_wrapper"> 
 
<div id="block">Hello!</div> 
 
</div>

修訂剪斷以上

+0

感謝您的回答,但我在編寫/處理特定值的隨機值時遇到問題,例如位置(在動畫聲明中) – glassraven