Чтобы ответить на этот вопрос Is there a way to create a 3D cylinder of the canvas element in CSS?, я играл с новым CSS пользовательских фильтров, пытаясь применить их к брезентовой элемента.CSS3 Пользовательские фильтры применяются к холсту - Работа только при странных условий
Это сработало, но только если некоторые условия, которые я не понимаю, выполнены. Они, похоже, связаны с поверхностью , определяемой свойствами холста. .height
и .width
. Сначала я подумал, что речь идет о производительности или помехах между рисунком CSS и холст-картинкой, но некоторые эксперименты, которые я сделал, казались неправильными.
Для иллюстрации этой ситуации я сделал jsFiddle (наведите указатель мыши над холстом, чтобы оживить его - убедитесь, что пользовательские фильтры доступны в вашем браузере).
Вот некоторые замечания, которые я сделал с помощью демо:
- Если (
.height
х.width
< 65760px)- Нет проблем, фильтр применяется, все, что мы делаем с холстом ,
- Если (
.height
х.width
> 65760px)- Фильтр, кажется, не применяется больше, если мы будем рисовать на холсте каждый кадр.
- На самом деле, даже если мы рисуем только один раз, это не сработает.
- Но если мы сохраним холст пустым/очищенным, тогда все будет нормально работать (ну, таким образом, мы просто применяем фильтр к прозрачному элементу DOM).
- Размер CSS (
canvas { width: ...; height: ...}
) на холсте, похоже, не влияет на него, а также количество вершин для фильтра.
Я не был в состоянии проверить еще, если значение 65760px то же самое на другом компьютере Попробованных на 2 разных компьютерах и получил тот же поведение/предел. Я использую Chrome Canary.
Любые объяснения?
Заранее благодарен!
Bye
Отличный ответ, спасибо! – Aldream
У кого-нибудь есть обновление по пользовательским фильтрам CSS? – starbeamrainbowlabs
@starbeamrainbowlabs Обновлен ответ - CSS Custom Filters исчез из всех основных браузеров. – Max