Начална » кодиране на стоките » Как да създадете 3D анимации с бутони с CSS

    Как да създадете 3D анимации с бутони с CSS

    Флип анимации са популярни CSS ефекти, които показват както отпред, така и отзад на HTML елемент, като ги завъртите отгоре надолу или отляво надясно (и обратно). Те са ради в 2 измерения, но те са дори по-хладни, когато се изпълняват в 3D.

    В този пост ще ви покажа как създавайте прости 3D бутони, и добавете флип анимации на тях.

    Можете да видите резултата на демото по-долу, ако щракнете върху бутоните, те ще изпълнят анимацията с флип.

    1. Създаване на HTML за 3D бутона

    За да създадете 3D бутон (с Top → Bottom flip), първо слагаме три

    един върху друг, две за предната и задната страна на бутона, и една за запълване на дълбочината в средата. Поставяме лицата с трите бутона в .flipBtn контейнер, който ще функционира като 3D бутон, и поставяме 3D бутона в .flipBtnWrapper халат.

     
    2. Добавяне на основни стилове с CSS

    Ние поставяме широчина и височина свойствата на обвивката, бутона и бутона на лицето и ги позиционират с помощта на техниката за относително / абсолютно позициониране.

     .flipBtnWrapper ширина: 200px; височина: 200px; позиция: относителна;  .flipBtn, .flipBtn_face ширина: 100%; височина: 100%; позиция: абсолютна;  
    3. Настройте лицата на 3 бутона

    Ние добавяме фонови изображения към лицето на предния и задния бутон и поставяме хладен линеен градиент зад изображенията. Номерът тук е, че в CSS можете да зададете множество изображения като фоново изображение за един и същ елемент, а също така можете да декларирате градиентите като фонови изображения.

    Средното лице, .flipBtn_mid, се дава a височина от 20px, и същото пространство от 20px се създава между предната и задната страна. Ние постигаме последното с помощта на translateZ () CSS функция, която премества елемент по оста z. Насочваме гърба на лицето с 10px и придвижваме предното лице напред с 10px.

     .flipBtn_front фон-изображение: url ("image / css-3d-flip-button-animation-play.png"), линеен градиент (# FF6366 50%, # FEA56E); backface-видимост: скрита; transform: translateZ (10px);  .flipBtn_back фон-изображение: url ("image / css-3d-flip-button-animation-pause.png"), линеен градиент (# FF6366 50%, # FEA56E); фонов цвят: син; transform: translateZ (-10px);  .flipBtn_mid височина: 20px; фонов цвят: # d5485a; transform: rotateX (90deg); отгоре: -10px; 

    Да се покрийте пространството между предните и задните лица със средната, ние постави средната повърхност плоска през x-равнината на 3D пространството, използвайки transform: rotateX (90deg); правило прави перпендикулярна към лицевата и предната бутони на y-равнината.

    Тъй като средната повърхност е била поставена плоско през х-равнината, нейната горна точка на у-ос отива 10px (половината от височината) надолу от оригинала. Така че, за да го издърпате нагоре и да подравните върха му с другите две бутони, добавих отгоре: -10px също.

    Използвах задната обвивка-видимост Свойството CSS за предната страна, така че когато обърнем бутона, задната част на лицевата страна няма да се вижда.

    Досега ще виждате само лицевата страна на екрана, тъй като x-плоскостта е скрита от изгледа, а на y-равнината (екрана) последното поставено лице е предно. Чрез завъртане на бутона ще можете да видите и другите лица.

    Бутонът
    4. Завъртане на бутона

    Свойството CSS на стила на преобразуване определя дали дъщерните елементи на HTML елемент се показват плоски или позиционирани в 3D пространството. В кодовия фрагмент по - долу стил на трансформация: preserve-3d; Правилото дава 3D обем на нашия бутон, докато transform: rotatexX () свойството го върти около оста х.

     .flipBtn стил на преобразуване: preserve-3d; transform: rotateX (-120deg);  

    Имайте предвид, че аз използвах -120deg единствено за демонстрационни цели, тъй като по този начин е по-лесно да се илюстрира как работи въртенето на бутона.

    Бутонът се завърта на -120 °

    Но в следващата стъпка ще го променим -180deg за да завъртите бутона напълно.

    5. Анимиране на бутона

    В този момент нашият 3D бутон все още не е анимиран. Можем да направим това с помощта на преход Имот. Ние използваме трансформиране за първата стойност, тъй като това е свойството, за което искаме да приложим ефекта на прехода. Втората стойност е продължителността, 2s.

    Нека бутонът да се върти само на мишката, така че вместо .flipBtn селектор, нека използваме .flipBtnWrapper: hover .flipBtn. Както бе споменато по-рано, също така променете стойността на rotateX () да се -180deg за да завъртите бутона.

     .flipBtn transition: transform 2s; стил на трансформация: preserve-3d;  .flipBtnWrapper: hover .flipBtn transform: rotateX (-180deg); 

    Имайте предвид, че в Github repo, I добави отметка до всеки бутон за да се задейства анимацията : проверява вместо на : навъртам, по този начин той се държи повече като истински бутон. Също така включих четири различни бутона с четири посоки на въртене (отгоре → отдолу, отдолу → отгоре, отдясно → ляво и ляво → дясно), така че да можете лесно да използвате каквото искате.

    • Преглед на демо
    • Изтеглете Източник