Oto, co należy wiedzieć na ten temat:
- 3 nowe funkcje CSS ułatwiają dodawanie płynnych animacji wejścia i wyjścia.
- Obliczanie zbiorów danych wyższego rzędu za pomocą grupowania tablic.
- Narzędzia deweloperskie ułatwiają lokalne zastępowanie.
- A to nie wszystko. Więcej informacji znajdziesz w dalszej części artykułu.
Mam na imię Adriana Jara. Sprawdźmy, co nowego w Chrome 117 czeka na deweloperów.
Nowe funkcje CSS do animacji rozpoczęcia i zakończenia.
Te 3 nowe funkcje CSS uzupełniają zestaw, który ułatwia dodawanie animacji wejścia i wyjścia oraz płynne animowanie elementów zamykanych z najwyższej warstwy, takich jak okna dialogowe i wyskakujące.
Pierwsza funkcja to transition-behavior. Aby przejść do właściwości dyskretnych, takich jak display, użyj wartości allow-discrete dla transition-behavior.
.card {
transition: opacity 0.25s, display 0.25s;
transition-behavior: allow-discrete; /* Note: be sure to write this after the shorthand */
}
.card.fade-out {
opacity: 0;
display: none;
}
Następnie reguła @starting-style jest używana do animowania efektów wejścia z display: none do warstwy najwyższej. Użyj @starting-style, aby zastosować styl, który przeglądarka może wyszukać, zanim element zostanie otwarty na stronie.
/* 0. IS-OPEN STATE */
/* The state at which the element is open + transition logic */
.item {
height: 3rem;
display: grid;
overflow: hidden;
transition: opacity 0.5s, transform 0.5s, height 0.5s, display 0.5s allow-discrete;
}
/* 1. BEFORE-OPEN STATE */
/* Starting point for the transition */
@starting-style {
.item {
opacity: 0;
height: 0;
}
}
/* 2. EXITING STATE */
/* While it is deleting, before DOM removal in JS, apply this
transformation for height, opacity, and a transform which
skews the element and moves it to the left before setting
it to display: none */
.is-deleting {
opacity: 0;
height: 0;
display: none;
transform: skewX(50deg) translateX(-25vw);
}
Aby na koniec wyblaknąć popover lub dialog z górnej warstwy, dodaj właściwość overlay do listy przejść. Uwzględnij nakładkę w przejściu lub animacji, aby animować ją wraz z pozostałymi elementami i zapewnić, że podczas animacji pozostanie na górnej warstwie. Będzie to wyglądać znacznie płynniej.
[open] {
transition: opacity 1s, display 1s allow-discrete;
}
[open] {
transition: opacity 1s, display 1s allow-discrete, overlay 1s allow-discrete;
}
Więcej informacji o tym, jak używać tych funkcji do poprawy wrażeń użytkowników dzięki animacjom ruchu, znajdziesz w artykule Cztery nowe funkcje CSS do płynnych animacji wejścia i wyjścia.
Grupowanie tablic
W programowaniu grupowanie tablic jest bardzo powszechną operacją, najczęściej spotykaną w przypadku używania klauzuli GROUP BY w SQL i programowania MapReduce (które lepiej jest traktować jako mapowanie-grupowanie-redukowanie).
Możliwość łączenia danych w grupy pozwala programistom obliczać zbiory danych wyższego rzędu. Na przykład średni wiek kohorty lub dzienne wartości LCP na stronie.
Grupowanie tablic umożliwia te scenariusze dzięki dodaniu metod statycznych Object.groupBy i Map.groupBy.
groupBy wywołuje podaną funkcję wywołania zwrotnego raz dla każdego elementu w obiekcie iterowalnym. Funkcja wywołania zwrotnego powinna zwracać ciąg znaków lub symbol wskazujący grupę powiązanego elementu.
W tym przykładzie z dokumentacji MDN znajduje się tablica produktów, w której do zwrócenia produktów pogrupowanych według typu użyto metody groupBy.
const inventory = [
{ name: "asparagus", type: "vegetables", quantity: 5 },
{ name: "bananas", type: "fruit", quantity: 0 },
{ name: "goat", type: "meat", quantity: 23 },
{ name: "cherries", type: "fruit", quantity: 5 },
{ name: "fish">;, type: "meat", quantity: 22 },
];
const result = Object.groupBy(inventory, ({ type }) = type);
/* Result is:
{
vegetables: [
{ name: 'asparagus', type: 'vegetables', quantity: 5 },
],
fruit: [
{ name: "bananas", type: "fruit", quantity: 0 },
{ name: "cherries", type: "fruit", quantity: 5 }
],
meat: [
{ name: "goat", type: "meat", quantity: 23 },
{ name: "fish", type: "meat", quantity: 22 }
]
}
*/
Więcej informacji znajdziesz w groupBydokumentacji.
Uproszczone zastąpienia lokalne w Narzędziach deweloperskich.
Funkcja lokalnych zastąpień została uproszczona, dzięki czemu możesz łatwo symulować nagłówki odpowiedzi i treści z internetu zasobów zdalnych z poziomu panelu Sieć bez dostępu do nich.
Aby zastąpić treści z internetu, otwórz panel Sieć, kliknij prawym przyciskiem myszy żądanie i wybierz Zastąp treść.

Jeśli masz skonfigurowane lokalne zastąpienia, ale są one wyłączone, Narzędzia deweloperskie je włączą. Jeśli nie zostały jeszcze skonfigurowane, w pasku działań u góry pojawi się odpowiedni komunikat. Wybierz folder, w którym mają być przechowywane zastąpienia, i zezwalaj na dostęp do niego w Narzędziach deweloperskich.

Po skonfigurowaniu zastąpień Narzędzia deweloperskie przekierują Cię do sekcji Źródła > Zastąpienia > Edytor, aby umożliwić zastąpienie treści internetowych.
Zwróć uwagę, że zastąpione zasoby są oznaczone symbolem
w panelu Sieć. Najedź kursorem na ikonę, aby zobaczyć, co zostało zastąpione.
![]()
Więcej informacji o Narzędziach deweloperskich w Chrome 117 znajdziesz w artykule co nowego w Narzędziach deweloperskich.
I wiele więcej!
Oczywiście jest ich o wiele więcej.
W Chrome zaimplementowano już długo oczekiwaną wartość
subgriddlagrid-template-columnsigrid-template-rows.Dostępne jest
WebSQLtestowanie przywrócenia wycofanej funkcji i okres próbny dla deweloperów dotyczącyunloadwycofania zdarzenia.
Więcej informacji
Obejmuje to tylko niektóre najważniejsze kwestie. Dodatkowe zmiany w Chrome 117 znajdziesz w linkach poniżej.
- Nowości w Narzędziach deweloperskich w Chrome (117)
- Wycofanie i usunięcie funkcji w Chrome 117
- Aktualizacje ChromeStatus.com dotyczące Chrome 117
- Lista zmian w repozytorium kodu źródłowego Chromium
- Kalendarz publikacji wersji Chrome
Zasubskrybuj
Aby być na bieżąco, zasubskrybuj kanał Chrome Developers na YouTube. Będziesz otrzymywać powiadomienia e-mail o każdym nowym filmie.
Jestem Adriana Jara i jak tylko Chrome 117 zostanie udostępniony, od razu powiem Ci, co nowego pojawi się w Chrome.