Я корректирую стиль div с помощью JavaScript:
div.style.left = "486px";
Я вывел значение:
console.log("left after:" + div.style.left);
вывод:
LOG: оставлено после: 486px
выглядит хорошо. Но я вижу, что div там нет. Я проверяю встроенный стиль с помощью инструментов разработчика:
left: 852px
Это не всегда происходит. Некоторые изменения левого значения работают правильно. Но на некоторых некоторые "дополнительные" настройки сделаны после.
Это происходит только в Internet Explorer (протестировано с версией 8). Протестировано в Firefox, Chrome, Opera и Safari, и этого не происходит. Есть идеи?
Я делаю эти настройки как реакцию на масштабирование браузера с помощью функции $ (window) .resize.
Я делаю вывод «осталось после:» в конце. Я предполагаю, что браузер завершил все масштабирование и изменение положения. Я устанавливаю свое значение, вывожу его в самом конце, а затем ожидаю увидеть это значение в CSS. Это происходит в большинстве случаев, но иногда (большой зум) я получаю эти разные значения.
Редактировать: происходит только в том случае, если масштаб браузера установлен на 150% или 175%. Например, на 150% я установил левое значение на 567 пикселей. Но в CSS я получаю 851px , когда возвращаюсь к уровню увеличения 125% или меньше, он снова работает. С 200% вперёд это также работает (установите 425px).