2017-01-17 4 views
0

У меня простая анимация, написанная на JavaScript с использованием библиотеки p5.js. Я обычно размещаю сценарии, подобные этим в Интернете, с помощью <script></script> и размещаю свой холст в обратном порядке с помощью правил CSS vertical-align: top; z-index: -1 холст моих анимаций обычно масштабируется динамически, поэтому нет необходимости в сложном CSS.Поворот и масштабирование сценария

Если у вас есть холст с фиксированной шириной и высотой (например, 600 x 400), можно ли применять 2D-преобразования CSS, например transform: translate(50px, 100px); transform: rotate(50px, 100px);, ко всему холсту? И в качестве последующего вопроса, как бы я указал свой CSS на скрипт? Могу ли я дать скрипту собственный класс? Или мне нужно разместить скрипт внутри?

Спасибо!

ответ

1

Да, вы можете применять преобразования CSS и 2d для элемента холста фиксированного размера.

canvas { 
 
    width: 600px; 
 
    height: 400px; 
 
    background: black; 
 
    transform: translate(50px, 100px); transform: rotate(45deg); 
 
}
<canvas></canvas>

Re: укладка сценария - не стиль самого script элемента, как никогда не отображается в браузере. Что бы вы сделали, так это стиль любых элементов, создаваемых script. Так скажите script создает <div class="createdByJS">hello world</div> на странице, вы бы затем стиль его через .createdByJs { color: red; }.

+0

Я вижу, спасибо за разъяснение. Обратите внимание на мое использование библиотеки p5.js, будут ли элементы, такие как rect() или ellipse(), вращаться и масштабироваться с помощью холста, даже если им заданы свойства, такие как ширина 20 пикселей и высота 10 пикселей? – Arkadelic

+1

@Arkadelic yes, вы можете применить преобразования к 'rect()' или любым другим формам с помощью p5. Вы можете [перейдите сюда] (https://p5js.org/reference/#/p5/ellipse) и примените их в инструментах dev и убедитесь сами. Re: масштабирование, если вы определяете жесткую ширину на любом элементе HTML, он не масштабируется на экране, так как ширина является фиксированным значением. Фиксированные значения не масштабируются автоматически. Вам нужно либо использовать медиа-запросы для определения точек останова, чтобы изменять размеры холстов при изменении видового экрана, либо использовать относительные единицы, которые масштабируются. –