Положение Div / CSS не обновляется после манипуляции JavaScript - PullRequest
3 голосов
/ 29 января 2011

Я хочу переместить div, который обычно плавает с правой стороны, в абсолютную позицию (определяется js), а затем обратно в исходное положение.

Первая часть уже работает и зависит от установкитеги "style." для объекта .. что-то вроде

mytarget.style.position="absolute";
mytarget.style.top="50px";

Чтобы переместить его назад, я бы хотел просто присвоить стандартному классу элемент, который также будет содержать информацию о позиционировании.

Как ни странно, все, кроме репозиции, будет работать.Вот соответствующий код:

var mytarget= document.getElementById(titlebarid);
var newclass=tabstyleclasses[titlebarid][ismaxedtab[titlebarid]];



mytarget.className= newclass ;

Отладка:

 alert ("wanting to set : " + newclass  )    ;

Это выводит правильное значение.("adfieldtitlesm")

alert ("my target is " +mytarget.id);

Работает также.

alert ("new class is " + mytarget.className );

Также выдает правильное значение.("adfieldtitlesm")

alert ("new position is " + mytarget.style.position );

Дает "абсолют" (как ранее было установлено JS при перемещении mytarget), должно быть "фиксировано"

Это класс CSS:

.adfieldtitlesm
 {
  position: fixed;
 top: 200px;
 left: 50px;

 font-size: 50px;
 background-color: #000000;
 color: #ffffff;

 }

Почему объект не будет двигаться после того, как его класс установлен?

ОБНОВЛЕНИЕ: Ссылка

Главная тестовая страница

Соответствующими частями этого являются строки 270-297 (в основном 290-294) в таблицах восстановления ()за первый ход, который работает и строки 160-183 в minwidget () извиняюсь за немного грязный код:)

1 Ответ

4 голосов
/ 29 января 2011

Поскольку встроенные свойства переопределяют свойства класса, вам необходимо удалить встроенные свойства.

mytarget.style.position="";

Тогда позиция fixed, определенная в классе, будет работать.

Или, возможно, использовать:

delete mytarget.style.position;

Не уверен, что является предпочтительным.

...