• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Błąd w przycisku :hover

0 głosów
414 wizyt
pytanie zadane 13 marca 2024 w HTML i CSS przez oleksik Użytkownik (630 p.)

Witam,

Pisze z pytaniem o drobną pomoc. Mianowicie zrobiłem przycisk w css. Dałem mu funkcje hover oraz zrobiłem animacje w keyframes. Dodałem go do kodu html lecz nic nie działa. Animacja nie może się uruchomić. Poniżej zamieszczę kod do html i css aby pokazać jak to napisałem. Może ktoś bardziej ogarnięty odemnie będzie wiedział co jest nie tak.

HTML

<button class="meni">
            <img src="file:///C:/Users/oleks/Downloads/1000_F_224136032_b11na6zJLTpORSjfauRdpKamQDc7Uejv-Photoroom.png-Photoroom__1_-removebg-preview.png" style="height: 70px; width: 70px; margin-left: -0.2cm;">
 </button>

---------------------------------------------------------------------------------------------------------------------------------------------------------

CSS
 

.meni{
            height: 70px;
            width: 70px;
            z-index: 999;
            position: fixed;
            
        }

        @keyframes meni {
            10%{
                background-color: rgb(0, 253, 0);
            }
            20%{
                background-color: rgb(2, 215, 2);
            }
            30%{
                background-color: rgb(1, 172, 1);
            }
            40%{
                background-color: rgb(0, 126, 0);
            }
            50%{
                background-color: rgb(2, 100, 2);
            }
            60%{
                background-color: rgb(1, 80, 1);
            }
            70%{
                background-color: rgb(0, 60, 0);
            }
            80%{
                background-color: rgb(0, 36, 0);
            }
            90%{
                background-color: rgb(0, 20, 0);
            }
            100%{
                background-color: rgb(0, 12, 0);
            }
        }

        .meni:hover{
            animation: meni 3s forwards;
        }

 

1 odpowiedź

+1 głos
odpowiedź 13 marca 2024 przez VBService Ekspert (256,600 p.)
edycja 13 marca 2024 przez VBService

W .meni (ciekawa nazwa wink) ustal wartość "początkową" dla background-color na np. transparent

[ kod przykładu on-line ]

<button class="meni">
  <!-- <img src="file:///C:/Users/oleks/Downloads/1000_F_224136032_b11na6zJLTpORSjfauRdpKamQDc7Uejv-Photoroom.png-Photoroom__1_-removebg-preview.png" 
            style="height: 70px; width: 70px; margin-left: -0.2cm;"> -->
  <img src="https://picsum.photos/id/169/800/562">  
</button>
.meni {
  height: 70px;
  width: 70px;
  z-index: 999;
  position: fixed;
  top: 0;
  left: 0;
  padding: 0;
  overflow: hidden;
  background-color: transparent;
}
.meni img {
  height: 100%; 
  width: 100%;
  /* margin-left: -0.2cm; */  
  object-fit: fill;

  /* dla prezentacji */
  margin-left: -2rem;
}
.meni:hover {
  animation: meni 3s forwards;
}
@keyframes meni {
  10% {
    background-color: rgb(0, 253, 0);
  }
  20% {
    background-color: rgb(2, 215, 2);
  }
  30% {
    background-color: rgb(1, 172, 1);
  }
  40% {
    background-color: rgb(0, 126, 0);
  }
  50% {
    background-color: rgb(2, 100, 2);
  }
  60% {
    background-color: rgb(1, 80, 1);
  }
  70% {
    background-color: rgb(0, 60, 0);
  }
  80% {
    background-color: rgb(0, 36, 0);
  }
  90% {
    background-color: rgb(0, 20, 0);
  }
  100% {
    background-color: rgb(0, 12, 0);
  }
}

 

 

 

BTW, jeżeli nie zależy Tobie na jakiś konkretnych kolorach w animacji między pierwszym kolorem a drugim, może zapisz np. tak:

@keyframes meni {
  from { background-color: rgb(0, 253, 0); }
    to { background-color: rgb(0, 12, 0); }
}

lub

@keyframes meni {
  0%   { background-color: rgb(0, 253, 0); }
  100% { background-color: rgb(0, 12, 0); }
}

lub

@keyframes meni {
  10%  { background-color: rgb(0, 253, 0); }
  100% { background-color: rgb(0, 12, 0); }
}

"przejścia" poszczególnych odcieni kolorów "obliczy" wtedy sama przeglądarka.

komentarz 14 marca 2024 przez Eimens Maniak (69,240 p.)
Masz element 70px na 70px.

Na tym elemencie masz na całej wielkości grafiką.

Zmieniasz kolor, który jest pod grafiką :) Animacja prawdopodobnie działa. Usuń grafikę i sprawdź.
komentarz 14 marca 2024 przez Eimens Maniak (69,240 p.)
Dodatkowo dodaj jakąś wartość background-color dla elementu .meni

 

Animacja tylko zmienia te wartość, jeżeli nie ustawisz początkowej to animacje się nie uruchomi :)

Podobne pytania

+1 głos
2 odpowiedzi 1,049 wizyt
pytanie zadane 22 czerwca 2016 w HTML i CSS przez Krzysiek_34 Mądrala (6,550 p.)
+1 głos
1 odpowiedź 394 wizyt
pytanie zadane 23 października 2023 w HTML i CSS przez new_user Użytkownik (640 p.)
0 głosów
1 odpowiedź 461 wizyt
pytanie zadane 5 lipca 2023 w HTML i CSS przez new_user Użytkownik (640 p.)

93,599 zapytań

142,524 odpowiedzi

322,993 komentarzy

63,082 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...