Skip to content

Form Range + JS

Vamos a desarrollar una práctica inspirados en: FrontendMentor

⭐ Videos Premium ⭐

Esta sección es parte del curso en Udemy. Si quieres acceder a ella, puedes comprar el curso en Udemy: Bootstrap 5 by bluuweb.

O bien también puedes visualizar los videos siendo miembro en Youtube. Accede a miembros del canal aquí y accede a los videos de esta sección.

custom.scss

scss
@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.4.0/font/bootstrap-icons.css");

@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@300;500;700&display=swap");
// font-family: 'Manrope', sans-serif;

$font-family-base: "Manrope", sans-serif;

@import "../node_modules/bootstrap/scss/bootstrap";

HTML

html
<!DOCTYPE html>
<html lang="es">
    <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" />
        <title>Precios level up</title>
        <link rel="stylesheet" href="css/custom.css" />
    </head>
    <body>
        <div class="container">
            <div class="text-center my-5">
                <h1 class="fw-bold mb-3">Simple, traffic-based pricing</h1>
                <p class="text-muted">
                    Sign-up for our 30-day trial. No credit card required.
                </p>
            </div>
            <div class="row justify-content-center">
                <div class="col-12 col-md-8 col-lg-6">
                    <div class="card border-0 shadow bg-dark text-light">
                        <div class="card-body">
                            <div
                                class="row text-center my-3 align-items-center"
                            >
                                <div class="col-12 col-md-6 order-1 order-md-1">
                                    <p class="h2 fw-bold m-0">
                                        $ <span id="price">16</span>.00
                                        <span class="text-muted h6 align-middle"
                                            >/ month</span
                                        >
                                    </p>
                                </div>
                                <div
                                    class="col-12 col-md-6 order-3 order-md-2 text-uppercase text-muted"
                                >
                                    <p class="m-0">
                                        <span id="views" class="text-primary"
                                            >100K</span
                                        >
                                        pageviews
                                    </p>
                                </div>
                                <div class="col-12 order-2 order-md-3 my-3">
                                    <input
                                        type="range"
                                        class="form-range"
                                        min="8"
                                        max="40"
                                        step="8"
                                        id="customRange3"
                                        value="24"
                                    />
                                </div>
                            </div>
                            <hr />
                            <div class="row">
                                <div class="col-12">
                                    <ul class="list-unstyled text-center">
                                        <li>
                                            <i
                                                class="bi bi-play text-primary"
                                            ></i>
                                            Unlimited websites
                                        </li>
                                        <li>
                                            <i
                                                class="bi bi-play text-primary"
                                            ></i>
                                            100% updates data ownership
                                        </li>
                                        <li>
                                            <i
                                                class="bi bi-play text-primary"
                                            ></i>
                                            Email report
                                        </li>
                                    </ul>
                                </div>
                                <div class="col-12 text-center">
                                    <button class="btn btn-outline-primary">
                                        Acceder
                                    </button>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

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

JS

js
console.log("holis");

const range = document.querySelector("#customRange3");
const views = document.querySelector("#views");
const price = document.querySelector("#price");
const arrayViews = ["10K", "50K", "100K", "500K", "1M"];

range.addEventListener("input", () => {
    console.log("me cambiaste 😱");
    console.log(range.value);
    price.textContent = range.value;
    views.textContent = arrayViews[range.value / 8 - 1];
});