2012-01-01 4 views
3

У меня есть диаграмма и сетка, первая может быть скрыта/показана, щелкнув по какой-то флажке. Может ли кто-нибудь придумать мета-код, демонстрирующий наиболее эффективный подход для этого? Я не вижу ничего лучшего, кроме повторного рисования всего холста каждый раз, когда меня изменяет настройка «Показать сетку».Re-Drawing Html5 Canvas

ответ

3

Вы можете использовать два узла холста; один для диаграммы, а другой для сетки поверх нее.

Затем вы можете просто скрыть (style.display = "none") элемент сетки или показать его (style.display = "block").

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

+0

Спасибо, а как насчет более сложного сценария - если у меня есть несколько «динамических» областей - не было бы лишним, чтобы иметь выделенный холст для каждого «динамичного» будущего? Сколько холстов можно укладывать без компрометации? –

+0

Браузеры довольно хороши в управлении даже сотнями элементов холста. Обратите внимание, что для графического движка браузера между холстом и узлом '' действительно не так много различий, и вы обычно видите много изображений на веб-странице. Кроме того, поскольку скрытие/показ не будет анимацией, а только реакция на взаимодействие с пользователем, скорость не должна быть проблемой даже на менее мощных устройствах, таких как телефоны или планшеты. – 6502