индикатор загрузки для блока

Есть сайт написанный на бутстрапе, нужно сделать прелоадер для блока, данные для которого берутся из открытой базы в формате json. При нажатии на кнопку данные подгружаются в блок. Собственно, вопрос. Как сделать при нажатии на кнопку преоладер? код js:

function gen_movie() {
    
    // Константы наших полей, в которые будет передаваться информация
    const movie_title = document.getElementById("movie_title");
    const movie_poster = document.getElementById("movie_poster");
    const movie_release_date = document.getElementById("movie_release_date");
    const movie_plot = document.getElementById("movie_plot");
    const movie_vote_average = document.getElementById("movie_vote_average");
    const movie_vote_count = document.getElementById("movie_vote_count");
    const movie_genre = document.getElementById("movie_genre");
    const movie_director = document.getElementById("movie_director");
    const movie_country = document.getElementById("movie_country");
    const movie_actors = document.getElementById("movie_actors");
    const movie_rate = document.getElementById("movie_rate");
    const movie_runtime = document.getElementById("movie_runtime");
    const movie_production = document.getElementById("movie_production");
    
    $.getJSON("https://api.themoviedb.org/3/discover/movie?api_key=f256afadce3caeb124cc7dea618179d3&language=en-US&sort_by=vote_count.desc&page="+getRandomInt(51), function(data) {
        let rand_item = getRandomInt(20 - 1);
        movie_title.innerText = data.results[rand_item].title;
        
        // Запрос в OMDb с целью получения нужной нам информации
        // Почему используем ещё и её, а не только TMDb?
        // Потому что OMDb предоставляет гораздо больше информации о фильмах, чем TMDb
        $.getJSON("https://www.omdbapi.com/?apikey=7d89747a&t="+data.results[rand_item].title, function(data) {
            // Передаем все необходимые нам данные в поля
            movie_director.innerText = data.Director;
            movie_genre.innerText = data.Genre;
            movie_country.innerText = data.Country;
            movie_actors.innerText = data.Actors;
            movie_release_date.innerText = data.Released;
            movie_rate.innerText = data.Rated;
            movie_poster.src = data.Poster;
            movie_vote_average.innerText = data.Ratings[0].Value;
            movie_vote_count.innerText = '('+data.imdbVotes+')';
            movie_runtime.innerText = data.Runtime;
            movie_production.innerText = data.Production;
            movie_plot.innerText = data.Plot;
        });
    });
}

html:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>Movies</title>
    <link rel="stylesheet" href="../style.css">
    <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    <link href="https://fonts.googleapis.com/css2?family=Comfortaa:wght@300;400;700&display=swap" rel="stylesheet">
    <link rel="shortcut icon" type="image/png" href="../img/favicon.png" />
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="style.css">
    <link rel="stylesheet" href="../revealator/fm.revealator.jquery.min.css"> 
    </head>

<body style="background-color: #f8f8f8">
    <div class="container-fluid">
        <div class="header bg-dark">
            <div class="dropdown navbar navbar-dark bg-dark float-sm-left">
                <a class="btn navbar-toggler" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <span class="navbar-toggler-icon"></span> </a>
                <div class="dropdown-menu bg-dark" aria-labelledby="dropdownMenuLink"> <a class="dropdown-item text-info" href="books.html">Books</a> <a class="dropdown-item text-info" href="games.html">Games</a> </div>
            </div>
            <h1 class="name-company">
               <a class="home-link" href="../index.html">
                <span class="letter_standart">R</span>
                <span class="letter_G">G</span>
                <span class="letter_M">M</span>
                <span class="letter_B">B</span>
                <span class="letter_standart">Generator</span>
                <img src="../img/logo.png" class="img-fluid logo-company" alt="">
                </a>
            </h1> </div>
        <script src="jquery-3.4.1.min.js"></script>
        <script src="scripts.js"></script>
        <script src="../revealator/jquery-1.11.3.min.js"></script>
        <script src="../revealator/fm.revealator.jquery.min.js"></script>
        <div class="row justify-content-center pt-5 revealator-slideright revealator-once">
            <div class="spinner-border" role="status">
              <span class="sr-only">Loading...</span>
            </div>
            <div class="card border-info mb-3 shadow bg-white rounded" style="max-width: 900px;" id="movies">
                <div class="row no-gutters">
                    <div class="col-md-4 p-2"> <img id="movie_poster" src="../img/default-movie.jpg" class="card-img" alt="..."> </div>
                    <div class="col-md-8" id="generate_movie_div">
                        <div class="card-body">
                            <h5 id="movie_title" class="card-title">Movie Title</h5>
                            <div class="card-text">Release Date: <span id="movie_release_date"></span></div>
                            <div class="card-text">Country: <span id="movie_country"></span></div>
                            <div class="card-text">Production: <span id="movie_production"></span></div>
                            <div class="card-text">Director: <span id="movie_director"></span></div>
                            <div class="card-text">Genre: <span id="movie_genre"></span></div>
                            <div class="card-text">Rated: <span id="movie_rate"></span></div>
                            <div class="card-text">IMDb User Ratings: <span id="movie_vote_average"></span> <span id="movie_vote_count"></span></div>
                            <div class="card-text">Runtime: <span id="movie_runtime"></span></div>
                            <div class="card-text">Actors: <span id="movie_actors"></span></div>
                            <div class="card-text">Plot: <span id="movie_plot"></span></div>
                            <div class="button_movie btn_for_generate">
                                <button id="generate_movie" onclick="gen_movie()" href="generators/movies.html" class="btn btn-outline-info">Generate</button>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="clr"></div>
        <div class="footer fixed-bottom bg-dark ml-2 mr-2">
            <p class="footer-text">&copy; RGMB Generator 2020</p>
        </div>
    </div>
</body>

</html>


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