Показать сообщение отдельно
  #4 (permalink)  
Старый 02.04.2020, 08:19
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,707

const stateStack = []

Перед любым перекрашиванием делаем
stateStack.push(document.getElementById('svg').inn erHTML)

По кнопке reset
if (stateStack.length)
document.getElementById('svg').innerHTML = stateStack.pop()

Можно, конечно придумать оптимизацию. Присвоить каждому path свой id При перекрашивании запоминать id того элемента, который перекрасили и именно его innerHTML, ну и восстанавливать соответственно.

stateStack.push({id: idpath, html: document.getElementById(idpath).innerHTML})

if (stateStack.length) {
const {idpath, html} = stateStack.pop()
document.getElementById(idpath).innerHTML = html
}

Последний раз редактировалось voraa, 02.04.2020 в 08:27.
Ответить с цитированием