πŸ”” Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ эффСкт вращСния 3D-Π±Π°Π½ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ HTML ΠΈ CSS

11.12.2024, 13:05
5 просмтотров
(0)
πŸ”” Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ эффСкт вращСния 3D-Π±Π°Π½ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ HTML ΠΈ CSS

Π’ этом Π²ΠΈΠ΄Π΅ΠΎ ΠΌΡ‹ сдСлаСм эффСкт вращСния 3D-Π±Π°Π½ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ HTML ΠΈ CSS. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ²Π΅Ρ€ΡΡ‚Π°Ρ‚ΡŒ самому ΠΏΠΎ Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ»ΠΈ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ² с Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎ ссылкС, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅.. Если это Π²ΠΈΠ΄Π΅ΠΎ оказалось для вас ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ, ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ со своими мыслями ΠΈΠ»ΠΈ вопросами. Π’Π°ΡˆΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ†Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚.

Π’ Π°Ρ€Ρ…ΠΈΠ²Π΅ находится:

  • ВсС дСмонстрационныС изобраТСния,Β 
  • Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ HTML,Β 
  • Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ CSS,Β 
  • Иконки ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ²,Β 
  • Π€Π°ΠΉΠ»Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²,Β 

БовмСстимыС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹Β 

  • Firefox,Β 
  • Safari,Β 
  • Edge,Β 
  • Opera,Β 
  • Chrome,Β 
  • Yandex,

HTML ΠšΠžΠ”:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>3D Can Rotation Effect - CSS</title>

    <!--css file-->
    <link rel="stylesheet" href="styles.css" />
  </head>
  <body>
    <div class="can">
      <div class="can-img" style="--img: url(images/coke-img.jpeg)"></div>
      <div class="can-img" style="--img: url(images/pepsi-img.jpg)"></div>
    </div>
  </body>
</html>

CSS ΠšΠžΠ”:

* {
  margin: 0;
  padding: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

body {
  position: relative;
  min-height: 100vh;
  background: -webkit-gradient(linear,
                              left top, right top,
                              from(#444),
                              color-stop(50%, #000), 
                              to(#444));
  background: -o-linear-gradient(left,
                              #444 0%,
                              #000 50%, 
                              #444 100%);
  background: linear-gradient(90deg,
                              #444 0%,
                              #000 50%, 
                              #444 100%);
  overflow: hidden;
}

.can {
  position: absolute;
  width: 300px;
  height: 500px;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  --left: 230px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.can .can-img {
  position: absolute;
  width: 250px;
  background: var(--img) var(--left), 
             url(images/can-img.png);
  background-size: auto 100%;
  aspect-ratio: 2/4;
  left: 50%;
  -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
          transform: translateX(-50%);
  background-blend-mode: multiply;
  -webkit-mask-image: url(images/can-img.png);
          mask-image: url(images/can-img.png);
  -webkit-mask-size: auto 100%;
          mask-size: auto 100%;
  -webkit-transition: 0.7s;
  -o-transition: 0.7s;
  transition: 0.7s;
}

.can:hover .can-img {
  -webkit-transform: translate(-50%, -20%);
      -ms-transform: translate(-50%, -20%);
          transform: translate(-50%, -20%);
  --left: -1000px;
}

.can .can-img:nth-child(2) {
  opacity: 0;
}

.can:hover .can-img:nth-child(2) {
  opacity: 1;
}

ΠŸΠΎΡ…ΠΎΠΆΠ΅Π΅ Π²ΠΈΠ΄Π΅ΠΎ:

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ
ΠšΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, Ссли ΠΎΠ½ Π½Π΅Ρ€Π°Π·Π±ΠΎΡ€Ρ‡ΠΈΠ²
x