Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Переместить объект (https://javascript.ru/forum/dom-window/44656-peremestit-obekt.html)

andrei0077 29.01.2014 14:31

Цитата:

Сообщение от рони (Сообщение 294561)
andrei0077,
<!DOCTYPE html>

<html>

<body>


<p>Click the button to move it.</p>

<button id="myButton" onclick="myFunction()" style=" left: 50px; position: relative">Click to move</button>

<script>
function myFunction()
{
 myButton.style.left = parseFloat(myButton.style.left) + 50 + 'px';
}
</script>

</body>
</html>

Поясните плиз, почему чтоб смещать кнопку, нужн ообязательно задать начальное положение. Это я не совсем понял.

рони 29.01.2014 15:02

Цитата:

Сообщение от andrei0077
Поясните плиз, почему чтоб смещать кнопку, нужн ообязательно задать начальное положение. Это я не совсем понял.

можно и не задавать начальное положение но тогда и неиспользовать запрос какое оно
parseFloat(myButton.style.left)

да и как вы собрались двигать незадав position

<!DOCTYPE html>

<html>

<body>


<p>Click the button to move it.</p>
<button id="myButton" onclick="myFunction()" style=" left: 50px; position: relative">Click to move</button>
<button id="myButton2" onclick="myFunction()" >Click to move</button>

<script>

alert([myButton.style.left,myButton2.style.left])

</script>

</body>
</html>

kostyanet 29.01.2014 15:27

Цитата:

Сообщение от andrei0077
Поясните плиз, почему чтоб смещать кнопку, нужн ообязательно задать начальное положение. Это я не совсем понял.

Начальное положение кнопки задано разметкой. А чтобы ее таскать, координаты кнопки _не_ должны игнорироваться браузером, а чтобы они не игнорировались должен быть явно задан атрибут position.

andrei0077 29.01.2014 19:13

Понятно. Т.е в языке js принцип такой: если свойство не объявил, то к нему обращаться нельзя, верно?

рони 29.01.2014 19:15

andrei0077,
свойство может и существовать но его значение может быть пустая строка или null например

Vlasenko Fedor 29.01.2014 19:25

Цитата:

Сообщение от kostyanet
чтобы они не игнорировались должен быть явно задан атрибут position

Че?
<button id="myButton" onclick="myFunction()">Click to move</button>
    <script>
      function myFunction() {
        var mleft = +myButton.style['margin-left'].replace('px', '') + 50; //slice(0, -2)
        myButton.style['margin-left'] = mleft + 'px';
      }
    </script>


Часовой пояс GMT +3, время: 12:45.