2013-06-04 71 views
0

這是我的代碼裏面:randomaly移動圖像的DIV

<style type="text/css"> 
    #box 
    { 
     width: 400px; 
     height: 400px; 
     border: 1px solid; 
     cursor: none; 
    } 
     #Parachute 
    { 
    width: 25px; 
    height: 25px; 
    cursor: none; 
    position: absolute; 
    } 
    </style> 
    <script type="text/javascript"> 
     $("#StartGame").click(function() { 
      animateDiv(); 


     }); 

     function makeNewPosition() { 

      // Get viewport dimensions (remove the dimension of the div) 
      var h = $("#box").height() - 25; 
      var w = $("#box").width() - 25; 

      var nh = Math.floor(Math.random() * h); 
      var nw = Math.floor(Math.random() * w); 

      return [nh, nw]; 

     } 

     function animateDiv() { 
      var newq = makeNewPosition(); 
      $('#Parachute').animate({ top: newq[0], left: newq[1] }, function() { 
       animateDiv(); 
      }); 

     }; 

    <script> 
    <centre> 
    <div id="box"> 
     <img id="Parachute" src="Parachute.gif" width="25px" height="25px" /> 
    </div> 
    <centre> 
    <input type="button" id="StartGame" value="Start Game" /> 

圖像不動我到底做錯了什麼?

+0

你能撥弄它嗎? – Gautam3164

+0

如果這是你的腳本和html的實際順序,你試圖在'#StartGame'附加一個處理程序,然後它就會存在。 –

回答

1

您需要設置絕對IMG的位置:

#Parachute{position:absolute} 

或者動畫margin-topmargin-left

http://jsfiddle.net/KyNDm/

2

您需要調整您的CSS ... 圖像的位置應該設置爲absolute,因爲您在使用左側和頂部:

#Parachute 
{ 
    width: 400px; 
    height: 400px; 
    border: 1px solid; 
    cursor: none; 
    position: absolute; 
} 

不改變你的CSS你也可以改變JS來:

$('#Parachute').animate({ 'margin-top': newq[0], 'margin-left': newq[1] }, function() { 
    animateDiv(); 
}); 

,以獲得期望的結果。

+0

請檢查我的編輯它的工作,但它的工作奇怪圖像不移動div內通知我的div是在一箇中心標記 – Sora

+0

你有沒有撥動它? – sjkm

+0

我無法上傳圖像,我從來沒有用過jsfiddle之前抱歉:s – Sora