2015-04-23 3 views
-3

Я тестирую простую анимацию, чтобы переместить текстанимации, чтобы переместить элемент не работает

<hmtl> 
    <style> 
    #work{ 
     background-color:blue; 
     width:50px; 
     position:absolute; 
     left:50px; 

    } 
    </style> 
    <body> 
     <div id="work">Animation Area</div> 
     <script> 
      elem=document.getElementById("work"); 
      function move(){ 
       if(elem.style.left < 500){ 
        elem.style.left=(elem.style.left+10)+'px'; 
        setTimeout(move,20); 
       } 
      } 
      move(); 
     </script> 
    </body> 
</hmtl> 

В этом простом коде я не могу найти, где я допустил ошибку. Я получаю только текст в местоположении по умолчанию, но он не перемещается. Зачем?

+0

Во-первых, 'elem.style.left' не возвращается число, оно возвращает что-то вроде '500px '' – adeneo

+1

Во-вторых, элемент не имеет позиции или стартового значения слева – adeneo

+0

'' должно быть '' – Downgoat

ответ

0

Вы сделали кучу ошибок, после некоторой отладки консоль обнаружила, что style.left возвращает null. Установите его на любое значение, и это работает отлично

I'll leave you with this

0
  1. Использование MarginLeft
  2. начало MarginLeft со значением
  3. Когда вы получаете значение MarginLeft, вы должны проанализировать значение INT

    <div style="margin-left:0px" id="work">JAVASCRIPT ANIMATE</div> 
        <script> 
         var elem = document.getElementById("work"); 
         function move(){ 
    
          var intLeft = parseInt(elem.style.marginLeft); 
    
          if(intLeft < 500){ 
           elem.style.marginLeft=(intLeft+10) + 'px'; 
           setTimeout(move,20); 
          } 
         } 
         move(); 
        </script> 
    
Смежные вопросы