JavaRush /Курси /Frontend SELF UA /Комбіновані трансформації

Комбіновані трансформації

Frontend SELF UA
Рівень 23 , Лекція 2
Відкрита

3.1 Основи комбінованих трансформацій

CSS дає можливість комбінувати кілька трансформацій для створення складних візуальних ефектів. Ці трансформації можуть включати translate, rotate, scale і skew, які можна об'єднати в одному властивості transform.

Властивість transform може містити кілька функцій трансформації, розділених пробілами. Вони будуть застосовуватися послідовно, в порядку їх зазначення. Розуміння того, як різні трансформації взаємодіють одна з одною, є ключем до створення складних анімацій і ефектів.

Синтаксис:

    
      element {
        transform: function1() function2() ... functionN();
      }
    
  

Приклад:

CSS
    
      element {
        transform: translate(20px, 20px) rotate(45deg) scale(1.5) skew(10deg, 5deg);
      }
    
  

Переміщення і обертання

У цьому прикладі елемент переміщується на 50 пікселів вправо і на 50 пікселів вниз, а потім обертається на 45 градусів.

Приклад:

HTML
    
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Переміщення і обертання</title>
          <style>
            .box {
              width: 100px;
              height: 100px;
              background-color: #3498db;
              transform: translate(50px, 50px) rotate(45deg);
            }
          </style>
        </head>
        <body>
          <div class="box"></div>
        </body>
      </html>
    
  

Пояснення коду:

  • .box: елемент спочатку переміщується на 50 пікселів вправо і вниз, а потім обертається на 45 градусів за годинниковою стрілкою

3.2 Аналіз різних комбінацій

1. Масштабування і нахил

У цьому прикладі елемент масштабується в 1.5 рази по обох осях, а потім нахиляється на 20 градусів по осі X і на 10 градусів по осі Y.

Приклад:

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Масштабування і нахил</title>
          <style>
            .box {
              width: 100px;
              height: 100px;
              background-color: #e74c3c;
              transform: scale(1.5) skew(20deg, 10deg);
            }
          </style>
        </head>
        <body>
          <div class="box"></div>
        </body>
      </html>
    
  

Пояснення коду:

  • .box: елемент спочатку масштабується в 1.5 рази по обох осях, а потім нахиляється на 20 градусів по осі X і на 10 градусів по осі Y

2. Переміщення, обертання і масштабування

У цьому прикладі елемент переміщується на 100 пікселів вправо, обертається на 30 градусів і масштабується в 2 рази по осі X і в 1.5 рази по осі Y.

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Переміщення, обертання і масштабування</title>
          <style>
            .box {
              width: 100px;
              height: 100px;
              background-color: #2ecc71;
              transform: translate(100px, 0) rotate(30deg) scale(2, 1.5);
            }
          </style>
        </head>
        <body>
          <div class="box"></div>
        </body>
      </html>
    
  

Пояснення коду:

  • .box: елемент спочатку переміщується на 100 пікселів вправо, потім обертається на 30 градусів і масштабується в 2 рази по осі X і в 1.5 рази по осі Y

3.3 Вплив порядку трансформацій

Коли кілька трансформацій комбінуються, важливо розуміти, що вони застосовуються послідовно. Це означає, що кожна наступна трансформація буде впливати на результат попередньої.

У цьому прикладі демонструється, як зміна порядку трансформацій впливає на кінцевий результат.

Приклад A: спочатку обертання, потім переміщення

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Спочатку обертання, потім переміщення</title>
          <style>
            .box-a {
              width: 100px;
              height: 100px;
              background-color: #3498db;
              transform: rotate(45deg) translate(50px, 50px);
            }
          </style>
        </head>
        <body>
          <div class="box-а"></div>
        </body>
      </html>
    
  

Приклад B: спочатку переміщення, потім обертання

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Спочатку переміщення, потім обертання</title>
          <style>
            .box-b {
              width: 100px;
              height: 100px;
              background-color: #e74c3c;
              transform: translate(50px, 50px) rotate(45deg);
            }
          </style>
        </head>
        <body>
          <div class="box-b"></div>
        </body>
      </html>
    
  

Пояснення коду:

  • .box-а: елемент спочатку обертається на 45 градусів, а потім переміщується на 50 пікселів вправо і вниз, що призводить до того, що елемент переміщується по діагоналі від свого нового положення після обертання
  • .box-b: елемент спочатку переміщується на 50 пікселів вправо і вниз, а потім обертається на 45 градусів, що призводить до того, що елемент обертається відносно свого нового положення
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ