Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.11.2020, 22:06
Кандидат Javascript-наук
Отправить личное сообщение для Was-Ja Посмотреть профиль Найти все сообщения от Was-Ja
 
Регистрация: 20.09.2020
Сообщений: 130

Как изменить расположение iframe и canvas и не перерисовать?
Добрый день,

не смог загуглить, подскажите, пожалуйста, куда смотреть.

Имею два объекта

<canvas id="canvas"></canvas>
<iframe></iframe>

в каждом из которых я рисую много чего и время отрисовки играет роль.

Мне хотелось бы дать юзеру возможность по-разному располагать эти объекты на экране, а именно
canvas - слева, а iframe - справа,
canvas - справа, а iframe - слева,
canvas - снизу, а iframe - сверху,
canvas - сверху, а iframe - снизу,
canvas - на полный экран, а iframe - нету,
canvas - нету, а iframe - на полный экран.

Если в canvas я еще как-то что-то могу перерисовать более-менее быстро, в iframe полная перерисовка занимает несколько секунд.

Пока я делал
<div id=main> </div>

и потом втыкал в
document.all('main').innerHTML текст таблицы, в которой мои canvas и iframe2-3 секунды2-3 секунды были расположены как я хотел.

Понятно после изменения расположения мне приходилось полностью заново все перерисовывать.

Скажите, пожалуйста, как это избежать, то есть как таблицу, которая содержит canvas и iframe так видоизменить, что расположение canvas и iframe относительно друг друга изменится, а содержание каждого из этих элементов (canvas и iframe) не изменится?

Спасибо!

Последний раз редактировалось Was-Ja, 08.11.2020 в 22:12.
Ответить с цитированием
  #2 (permalink)  
Старый 08.11.2020, 22:20
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,705

Если нельзя просто двигать объекты меняя их стили (left, top), то можно для перемещения удалять элемент из контейнера, но не удаляя его совсем, а потом вставлять в другой контейнер.
let canv = document.getElementById('myCanvas')
canv.remove() // Удаляем cаnvas из старого DIV

let newdiv = doсument.getElementById('newDiv')

newdiv.appendChild (canv) // Вставляем в новый.

И перерисовывать ничего не надо.
Так же думаю и с iframe можно.
Ответить с цитированием
  #3 (permalink)  
Старый 08.11.2020, 23:51
Кандидат Javascript-наук
Отправить личное сообщение для Was-Ja Посмотреть профиль Найти все сообщения от Was-Ja
 
Регистрация: 20.09.2020
Сообщений: 130

Классно, спасибо! Работает!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить поля в модели? Или как пересоздать модель? Risa ExtJS 3 20.02.2015 12:47
Как можно прокручивать IFRAME Hol1killer Общие вопросы Javascript 6 14.01.2015 13:27
Как изменить уже созданный Canvas Altai Общие вопросы Javascript 2 04.12.2014 22:31
как передать значение переменной в IFRAME в поле формы JS-ом из самой страницы? DeUre Общие вопросы Javascript 14 17.12.2013 16:37
Изменить параметр тега iframe AlexM jQuery 2 26.01.2012 12:05