Właściwość filter w CSS – dostępne efekty
Właściwość filter pozwala na nakładanie efektów graficznych na elementy strony, najczęściej na obrazy (img). Efekty te mogą być dynamicznie zmieniane również za pomocą JavaScript.
1. none
Domyślna wartość. Oznacza brak jakichkolwiek efektów.
Przykład:
img {
filter: none;
}
2. blur(px)
Nakłada efekt rozmycia na obraz. Im większa wartość w pikselach, tym silniejsze rozmycie.
Przykład:
img {
filter: blur(5px);
}
3. brightness(%)
Zmienia jasność obrazu.
- 0% – obraz całkowicie czarny
- 100% – obraz oryginalny
- powyżej 100% – jaśniejszy obraz
Przykład:
img {
filter: brightness(120%);
}
4. contrast(%)
Reguluje kontrast obrazu.
- 0% – obraz całkowicie czarny
- 100% – kontrast oryginalny
- powyżej 100% – większy kontrast
Przykład:
img {
filter: contrast(150%);
}
5. grayscale(%)
Zamienia obraz na odcienie szarości.
- 0% – brak efektu
- 100% – obraz czarno-biały
Przykład:
img {
filter: grayscale(100%);
}
6. invert(%)
Odwraca kolory obrazu (negatyw).
- 0% – brak efektu
- 100% – pełny negatyw
Przykład:
img {
filter: invert(100%);
}
7. opacity(%)
Ustawia przezroczystość obrazu.
- 0% – całkowicie przezroczysty
- 100% – brak przezroczystości
Przykład:
img {
filter: opacity(60%);
}
8. sepia(%)
Nadaje obrazowi efekt starej fotografii.
- 0% – brak efektu
- 100% – pełna sepia
Przykład:
img {
filter: sepia(100%);
}
Łączenie kilku filtrów jednocześnie
Można zastosować kilka filtrów naraz, zapisując je po sobie:
img {
filter: grayscale(100%) blur(3px) brightness(120%);
}
Ćwiczenie: Transformacje obrazów z wykorzystaniem JavaScript
Cel ćwiczenia
Celem ćwiczenia jest przećwiczenie obsługi zdarzeń, pracy z formularzem oraz stosowania właściwości filter w JavaScript do dynamicznej modyfikacji wyglądu obrazów na stronie internetowej.
Wymagania ogólne
- Skrypt musi być napisany w języku JavaScript.
- Należy stosować znaczące i czytelne nazwy zmiennych oraz funkcji (np.
applyBlurFilter,opacityValue). - Skrypt ma realizować transformacje obrazów z wykorzystaniem właściwości CSS
filter. - Efekty działania filtrów powinny być widoczne bez przeładowywania strony.
Część 1 – Transformacje obrazu 1 (radio)
Dla pierwszego obrazu przygotuj trzy elementy radio:
-
Blur
- Po zaznaczeniu checkboxa na obraz ma zostać nałożony filtr rozmycia.
- Wartość rozmycia powinna mieścić się w przedziale od 4 px do 8 px (dowolna wartość z tego zakresu).
-
Sepia
- Po zaznaczeniu checkboxa na obraz ma zostać nałożony filtr sepii o wartości 100% (efekt starej fotografii).
-
Negatyw
- Po zaznaczeniu checkboxa na obraz ma zostać nałożony filtr odwrócenia kolorów (negatyw) o wartości 100%.
Filtry powinny reagować na zaznaczanie i odznaczanie checkboxów.
Część 2 – Transformacje obrazu 2 (przyciski)
Dla drugiego obrazu przygotuj dwa przyciski:
-
„Kolory”
- Po kliknięciu przycisku obraz ma mieć usunięty filtr odcieni szarości (powrót do kolorów).
-
„Czarno-biały”
- Po kliknięciu przycisku na obraz ma zostać nałożony filtr grayscale(100%).
Część 3 – Transformacje obrazu 3 (suwak + przycisk)
Dla trzeciego obrazu przygotuj:
- suwak (
input type="range") do wyboru poziomu przezroczystości, - przycisk „Zastosuj”.
Po kliknięciu przycisku:
- na obraz ma zostać nałożony filtr przezroczystości (
opacity), - wartość filtru ma pochodzić bezpośrednio z ustawienia suwaka.
Część 4 – Transformacje obrazu 4 (jasność)
Dla czwartego obrazu przygotuj:
- suwak do ustawiania poziomu jasności,
- przycisk „Zastosuj”.
Po kliknięciu przycisku:
- na obraz ma zostać nałożony filtr zmiany jasności (
brightness), - wartość filtru ma być zgodna z aktualnym ustawieniem suwaka.
Wskazówki
- Pamiętaj o korzystaniu z właściwości
.value,.checkedoraz.style.filter. - Każda transformacja powinna być obsługiwana przez osobną, czytelnie nazwaną funkcję.
- Zadbaj o to, aby kod był czytelny i logicznie podzielony.