2013-06-04 3 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-top, margin-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

Смежные вопросы