Как сделать общую функцию, которая будет принимать display:block и display:none?

Всем привет, хочу сделать функцию которая будет взаимодействовать с кнопками, pause, play, next track, previous трек. play - при нажатие на данную кнопку, будет воспроизводиться трек и появляться кнопка pause. pause - песня останавливается и показывает кнопку play. кнопка next track - при нажатие на нее задает display:none нажатому плееру(блоку). previous track - при нажатие будет накладывать на предыдущий блок displa:block. нужна какая-то общая функция. Для более понятного вопроса прикрепляю видос https://drive.google.com/file/d/10GPzB8V8xtWKdaxQR2UCmYv7StpMtn2F/view?usp=sharing

const tracks = [
    {
        track: 'Групи',
        artist: 'Платина & OG Buda',
        duration: '3:00',
        image: 'img/track_list/gruppy.jpg',
    },
    {
        track:'Как в первый раз',
        artist: 'Платина',
        duration: '3:04',
        image: 'img/track_list/kak_v_perviy_raz.jpg',
    },
    {
        track:'Ламбо',
        artist: 'Платина & FEDUK',
        duration: '3:28',
        image: 'img/track_list/lambo.jpg',
    },
    {
        track:'Валентина',
        artist: 'Платина',
        duration: '2:32',
        image: 'img/track_list/valentina.jpg',
    },
    {
        track:'Навсегда (feat. White Punk)',
        artist: 'Платина',
        duration: '2:13',
        image: 'img/track_list/navsegda.jpg',
    },
    {
        track:'На грязном (Диана)',
        artist: 'Платина',
        duration: '2:06',
        image: 'img/track_list/diana.jpg',
    },
    {
        track:'Salam',
        artist: 'Платина',
        duration: '2:41',
        image: 'img/track_list/salam_jpg.jpg',

    },
    {
        track:'Abu Dhabi Ba6y',
        artist: 'Платина & OG Buda & MAYOT',
        duration: '3:00',
        image: 'img/track_list/dhabi.jpg',
    },
]


const container = document.querySelector('.cards');  //возвращает первый элемент (Element) документа, который соответствует указанному селектору или группе селекторов. Если совпадений не найдено, возвращает значение null.
const song = document.getElementById('song-template'); //возвращает ссылку на элемент по его идентификатору (ID); идентификатор является строкой, которая может быть использована для идентификации элемента; она может быть определена при помощи атрибута id в HTML или из скрипта.

const getTemplate = () => {
    const song = document.getElementById('song-template')
        .content.cloneNode(true);  //возвращает дубликат узла, из которого этот метод был вызван
        return song
}

const generateSong = ({data, element}) => {
    element.querySelector('.track').textContent = data.track;  //возвращает первый элемент, являющийся потомком элемента, на который применено правило указанной группы селекторов.
    element.querySelector('.artist').textContent = data.artist;
    element.querySelector('.end_track').textContent = data.duration;
    element.querySelector('.track_image').src = data.image;


    return element;
}

tracks.forEach((track) => {
    const template = getTemplate();
    const song = generateSong({data: track, element: template});
    container.appendChild(song);  //добавляет узел в конец списка дочерних элементов указанного родительского узла. Если данный дочерний элемент является ссылкой на существующий узел в документе, то функция appendChild() перемещает его из текущей позиции в новую позицию (нет необходимости удалять узел из родительского узла перед добавлением его к какому-либо другому узлу).
})
/* стили гугл */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400&family=Staatliches&display=swap');

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@600;700&display=swap');

@import url('https://fonts.googleapis.com/css2?family=Indie+Flower&display=swap');


* {
    padding: 0;
    margin: 0;

}

/* начало - менюшки */
/* header img{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 0px;
    

    position: absolute;
    width: 50px;
    height: 50px;
    left: 20px;
    top: 40px;
} */
/* конец - менюшки */


/* начало левый бар с ссылками */

/* начало кнопки - музыка */

.music_platina {
    position: absolute;
    top: -80px;

}

.music_platina a {
    font-family: 'Montserrat', sans-serif;
    font-size: 20px;
    text-decoration: none;
    color: black;
    text-transform: uppercase;
    line-height: 1.2;
}


/* конец кнопки - музыка */

.left_bar_social {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 0px;

    position: absolute;
    left: 40px;
    top: 120px;
}

.left_bar_social img {
    width: 30px;
    height: 30px;
    padding-bottom: 70px;
}

/* начало концерты */

.concert_artist a {
    font-family: 'Montserrat', sans-serif;
    font-size: 20px;
    text-decoration: none;
    text-transform: uppercase;
    line-height: 1.2;
    color: black;

    padding-top: 0px;
}

/* конец концерты  */

/* конец - левый бар с ссылками */



.wrapper {
    width: 100%;
    aspect-ratio: 3 / 2;
    position: relative;
    overflow: hidden;
    background: linear-gradient(90deg, #9e9e9e 0%, #ffffff 30%, #6a6a6a 100%);
}

/* надпись - имя, дата */
.info_artist {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 0px;

    -webkit-text-fill-color: transparent;
    background: -webkit-linear-gradient(transparent, transparent), url(https://thumbs.gfycat.com/ReadyFarawayLeopard-size_restricted.gif) repeat;
    background: -o-linear-gradient(transparent, transparent);
    -webkit-background-clip: text;

    position: absolute;
    width: 812px;
    height: 258px;
    left: 160px;
    top: 100px;
}

.name_artist {
    width: 394px;
    height: 95px;


    font-family: 'Indie Flower', cursive;
    font-weight: 600;
    font-style: normal;
    font-size: 60px;
    text-transform: uppercase;
}

/* .date_concert_artist {
    width: 334px;
    height: 91px;

    font-family: 'Circular Std';
    font-style: normal;
    font-weight: 400;
    font-size: 35px;
    line-height: 40px;
} */

/* конец - надпись имя, дата */


/* начало - скрины треков */
.cards {
    display: flex;
    flex-wrap: wrap;
    width: 1915px;
    text-align: center;
    transform: translateX(29%) translateY(-25%) rotateX(50deg) rotateZ(330deg) skewX(19deg) skewY(350deg);
}

.cards .tracks_list>img {
    display: inline-block;
    width: 350px;
    border-radius: 30px;
    margin-top: 40px;
    margin-bottom: 20px;

}

.cards>* {
    display: inline-block;
    width: 400px;
    aspect-ratio: 1 / 2;
    margin-right: 10px;
    border-radius: 30px;
    margin-bottom: 20px;
}


.cards>*:nth-child(1) {
    background: linear-gradient(0deg, #000000 0%, #000000 0%, #42353c 40%);
}

.cards>*:nth-child(2) {
    background: linear-gradient(0deg, #000000 0%, #000000 0%, #382239 40%);
}

.cards>*:nth-child(3) {
    background: linear-gradient(0deg, #000000 0%, #000000 0%, #312829 40%);
}

.cards>*:nth-child(4) {
    background: linear-gradient(0deg, #000000 0%, #000000 0%, #382239 40%);
}

.cards>*:nth-child(5) {
    background: linear-gradient(0deg, #000000 0%, #000000 0%, #2b1c2f 70%);
}

.cards>*:nth-child(6) {
    background: linear-gradient(0deg, #000000 0%, #000000 0%, #311e20 70%);
}

.cards>*:nth-child(7) {
    background: linear-gradient(0deg, #000000 0%, #000000 0%, #272c54 70%);
}

.cards>*:nth-child(8) {
    background: linear-gradient(0deg, #000000 0%, #000000 0%, #6a6a6c 70%);
}


/* .cards img>*:nth-child(7) {
    background: linear-gradient(0deg, #000000 0%, #000000 40%, #3f2722 100%);
 }

 .cards img>*:nth-child(8) {
    background: linear-gradient(0deg, #000000 0%, #000000 40%, #3f2722 100%);
 }  */

/* конец - скрины треков


@import url('https://fonts.googleapis.com/css2?family=Meera+Inimai&display=swap');
/*шрифт для название песни */

/* начало - верстка самого плеера */

.name_container {
    display: inline-block;
    margin-bottom: 30px;
    /* margin-right: 140px; */
}

.track {
    font-family: 'Meera Inimai', sans-serif;
    font-size: 19px;
    color: #f6eef3;
}

.artist {
    font-family: 'Meera Inimai', sans-serif;
    font-size: 19px;
    color: #a99ba6;
}

/* начало - прогресс бар */

.progress_bar{
    width: 300px;
    margin-left: 30px;
}



/* .progress_bar {
    display: flex;
    margin-left: 30px;

    width: 340px;
    height: 5px;
    border-radius: 5px;
    background-color: #fff;
    margin-bottom: 10px;
}

.progress_bar::after {
    display: flex;
    justify-content: start;
    content: '';
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    background: rgba(255, 255, 255, 1);
    filter: drop-shadow(0px 0px 4px rgba(46, 45, 45, 1));
    border-radius: 50%;
    box-sizing: border-box;
}

.progress_bar::before {
    display: flex;
    justify-content: start;
    content: '';
    transform: translateY(-50%);
    height: 5px;
    background: rgba(255, 255, 255, .3);
    border-radius: 5px;
    z-index: -1;
} */


/* конец - прогресс бар */

/* начало - тайминги */
.time_bar {
    display: flex;
    justify-content: space-between;

    margin-top: 15px;
    margin-bottom: 30px;
    margin-left: 30px;
    margin-right: 30px;
    color: #a99ba6;
}

.start_track {
    font-family: 'Meera Inimai', sans-serif;
    font-size: 17px;
}

.end_track {
    font-family: 'Meera Inimai', sans-serif;
    font-size: 17px
}

/* конец - тайминги */

/* начало панели переключение */

.panel_players {
    display: flex;
    justify-content: space-around;
    flex-flow: row nowrap;
    margin-left: 10px;
    margin-bottom: 50px;
}

/* .panel_players img {
    -webkit-filter: blur(3px);
    filter: blur(3px);
    -webkit-transition: .3s ease-in-out;
    transition: .3s ease-in-out;
} */

/* .panel_players:hover img {
    -webkit-filter: blur(0);
    filter: blur(0);
} */

.pause_active {
    display: none;
    /* max-width: 50px;
    padding: 40px */
}

.left_button img {
    max-width: 50px;
    padding: 40px;

    -webkit-transform: scale(1);
    transform: scale(1);
    -webkit-transition: .3s ease-in-out;
    transition: .3s ease-in-out;
}

.left_button:hover img{
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
}


.play_button img {
    max-width: 50px;
    padding: 30px;

    -webkit-transform: scale(1);
    transform: scale(1);
    -webkit-transition: .3s ease-in-out;
    transition: .3s ease-in-out;
}

.play_button:hover img {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
}


.right_button img {
    max-width: 50px;
    padding: 35px;

    -webkit-transform: scale(1);
    transform: scale(1);
    -webkit-transition: .3s ease-in-out;
    transition: .3s ease-in-out;
}

.right_button:hover img {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
}



/* конец панели переключение */

/*  старт - громкость */

.panel_volume{
    padding-top: 8px;
}

.panel_volume input[type="range"] {
    display: block;
    -webkit-appearance: none;
    background-color: #bdc3c7;
    width: 250px;
    height: 5px;
    border-radius: 5px;
    margin: 0 auto;
    outline: 0;
}

.panel_volume input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    background-color: #303331;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    border: 2px solid white;
    cursor: pointer;
    transition: .4s ease-in-out;

}

.panel_volume input[type="range"]::-webkit-slider-thumb:hover {
    background-color: #000000;
}

.panel_volume input[type="range"]::-webkit-slider-thumb:active {
    transform: scale(1.6);
}

/* конец - громкость */

.volume_regulator {
    position: relative;
    display: flex;
    justify-content: space-around;
    bottom: 15px;
}

.right_volume img {
    max-width: 20px;
    position: relative;
    right: 15px;
}

.left_volume img {
    max-width: 20px;
    position: relative;
    left: 15px;
}


.progress_bar input[type="range"] {
    display: block;
    -webkit-appearance: none;
    background-color: #bdc3c7;
    width: 350px;
    height: 5px;
    border-radius: 5px;
    margin: 0 auto;
    outline: 0;
}

.progress_bar input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    background-color: white;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid white;
    cursor: pointer;
    transition: .4s ease-in-out;

}

​.progress_bar input [type="range"]::-webkit-slider-thumb:hover {
    background-color: #000000;
}

.progress_bar input[type="range"]::-webkit-slider-thumb:active {
    transform: scale(1.6);
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="css/style.css">
    <title>Платина</title>
</head>
<body>
    <div class="wrapper">
        <!-- <header>
            <img src="img/b/b_bedolaga.png" alt="">
        </header> -->


        <div class="left_bar_social">
            <div class="music_platina">
                <a href="#">МУЗЫКА</a>
            </div>

            <a href="https://vk.com/platinarnbklub" target="_blank"><img src="img/social/vk.png" alt="vk"></a>
            <a href="https://www.instagram.com/platina300/?hl=ru" target="_blank"><img src="img/social/insta.png" alt="insta"></a>
            <a href="https://www.youtube.com/c/%D0%9F%D0%BB%D0%B0%D1%82%D0%B8%D0%BD%D0%B0300" target="_blank"><img src="img/social/youtube.png" alt="youtube"></a>
            <a href="https://t.me/sosamuzik300" target="_blank"><img src="img/social/telegram.png" alt="telegram"></a>
            <a href="https://music.apple.com/ru/artist/%D0%BF%D0%BB%D0%B0%D1%82%D0%B8%D0%BD%D0%B0/1309211809" target="_blank"><img src="img/social/apple_music.png" alt="apple music"></a>

            <div class="concert_artist">
                <a target="_blank" href="concert_platina/concert_platina.html">КОНЦЕРТЫ</a>
            </div>
        </div>

        <div class="info_artist">
                <div class="name_artist">
                    <p>ПЛАТИНА</p>
                </div>

                <!-- <div class="date_concert_artist">
                    <p>16.10.2022 MOSCOW</p>
                </div> -->
        </div>
        <!-- скрины треков -->
        <div class="cards">

            </div>
        </div>
    
            
        



        <template id="song-template">
            <div class="tracks_list" id="track-play-gruppy">
                <img class="track_image" src="img/track_list/gruppy.jpg" alt="">
                <div class="name_container">
                    <div class="track">Групи</div>
                    <div class="artist">Платина & OG Buda</div>
                </div>
                <div class="progress_bar">
                        <input class="song" type="range" min='0 'max="100" >
                </div>
                <div class="time_bar">
                    <div class="music-progress__time-item music-current-time start_track">0:00</div>
                    <div class="music-progress__time-item music-duration-time end_track">3:11</div>
                </div>
                <div class="panel_players">
                    <div class="left_button">
                        <img class="left-prev-track" src="img/button/left.png" alt="left">
                    </div>
                    <div class="play_button">
                        <img class='pause_active' id="some_pause_gruppy" src="img/button/pause.png"  alt="" >
                        <img class='play_active' id="some_play_gruppy"  src="img/button/play.png" alt="">
                    </div>
                    <div class="right_button">
                        <img  id="right-next-track" src="img/button/right.png" alt="">
                    </div>
                </div>

                <div class="volume_regulator">
                    <div class="left_volume">
                    <img src="img/button/volume-mute.png" alt="">
                    </div>
                    <div class="panel_volume">
                        <input type="range" min='0 'max="100" >
                    </div>
                        <div class="right_volume">
                    <img src="img/button/volume-up.png" alt="">
                    </div>
                </div>
            
            </div>
        </template>




    
            
            <audio id= "Grupy" src="mp3/grupy.mp3" controls ></audio>
            <audio id= "KakPerviyRaz" src="mp3/platina_kak_v_perviy_raz.mp3" controls></audio>
            <audio id= "Lambo" src="mp3/lambo.mp3"></audio>




    
<script src="js/app.js"></script>
</body>
</html>


Ответы (0 шт):