<link rel="stylesheet" href="reset.css">
<link rel="stylesheet" href="style.css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;500;700&display=swap" rel="stylesheet">
let arr = [ ["british", "classic-rock"], ["pop"], ["rock", "classic-rock"] ]
["british", "classic-rock"]
["pop"]
["rock", "classic-rock"]
arr
отфильтровать по другому массиву ["british", "pop"]
arr
есть что-то из ЭЛЕМЕНТОВ массива ["british", "pop"]
, то этот ЭЛЕМЕНТ массива arr
- оставляем. arr
не содержит то он нам не нужен.let filteredArray = [ ["british", "classic-rock"], ["pop"] ]
arr[0][0] == ["british", "pop"][0]
и arr[1][0] == ["british", "pop"][1]
Сначала анимируешь исчезновение блока, потом задаешь ему display:none;
Чтоб показать блок, делаешь все наоборот. Задаешь ему display:block, а потом анимируешь его появление.
Тут нет ничего сложного или каких-то скрытых знаний, все просто и в лоб.