Maison  >  Article  >  interface Web  >  Implémenter la calculatrice en utilisant jquery

Implémenter la calculatrice en utilisant jquery

WBOY
WBOYoriginal
2023-05-14 09:38:36866parcourir

La calculatrice est l'un des outils indispensables dans la vie quotidienne des gens, et c'est aussi l'une des fonctions qui doivent souvent être implémentées dans le développement Web. Dans cet article, nous utiliserons la bibliothèque jQuery pour implémenter une calculatrice simple prenant en charge quatre opérations arithmétiques et décimales, et pouvant utiliser la saisie au clavier.

Tout d'abord, nous devons créer une page HTML pour héberger notre calculatrice. La structure HTML est la suivante :

<!DOCTYPE html>
<html>
<head>
    <title>jQuery计算器</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="script.js"></script>
</head>
<body>
    <div id="calculator">
        <div class="display">
            <input type="text" id="result" readonly>
        </div>
        <div class="keys">
            <button id="clear">AC</button>
            <button id="sign">+/-</button>
            <button id="percent">%</button>
            <button class="operator" id="divide">/</button>
            <button class="number" id="seven">7</button>
            <button class="number" id="eight">8</button>
            <button class="number" id="nine">9</button>
            <button class="operator" id="multiply">*</button>
            <button class="number" id="four">4</button>
            <button class="number" id="five">5</button>
            <button class="number" id="six">6</button>
            <button class="operator" id="subtract">-</button>
            <button class="number" id="one">1</button>
            <button class="number" id="two">2</button>
            <button class="number" id="three">3</button>
            <button class="operator" id="add">+</button>
            <button class="number" id="zero">0</button>
            <button id="decimal">.</button>
            <button id="equal">=</button>
        </div>
    </div>
</body>
</html>

Dans cette structure HTML, nous avons un conteneur pour une calculatrice, qui a deux éléments enfants, l'un est la zone d'affichage et l'autre est la zone clé. La zone d'affichage utilise une zone de saisie pour afficher les résultats de l'opération, tandis que la zone de touches contient des touches telles que des chiffres et des opérateurs, ainsi que d'autres touches spéciales (telles que effacer, nier, pourcentage, etc.).

Ensuite, nous devons créer une feuille de style CSS pour embellir notre calculatrice. Le style CSS est le suivant :

body {
    font-family: Arial, sans-serif;
}

#calculator {
    margin: 0 auto;
    width: 310px;
    border: 1px solid #ccc;
    border-radius: 10px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
}

.display {
    padding: 10px;
    background-color: #f2f2f2;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    text-align: right;
}

#result {
    width: 100%;
    height: 40px;
    font-size: 24px;
    border: 0;
}

.keys {
    display: grid;
    grid-gap: 1px;
    grid-template-columns: repeat(4, 1fr);
    background-color: #efefef;
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
}

button {
    width: 100%;
    height: 50px;
    font-size: 20px;
    border: 0;
    color: #fff;
    background-color: #4CAF50;
    cursor: pointer;
    outline: none;
}

button:focus {
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.5);
}

Dans ce style CSS, nous définissons le style général de la calculatrice, y compris les bordures, les ombres, les coins arrondis, etc. Afin d'organiser étroitement les touches du clavier, nous avons utilisé la technologie de disposition en grille CSS et défini le style des touches.

Ensuite, nous devons écrire un script JavaScript pour gérer la logique de la calculatrice. Nous utilisons la bibliothèque jQuery pour simplifier la gestion de l'écriture de code et la manipulation du DOM.

Nous devons d'abord définir globalement trois variables :

var firstNumber = '';
var operator = '';
var secondNumber = '';

Ces trois variables stockeront respectivement le premier numéro, l'opérateur et le deuxième numéro saisis par l'utilisateur.

Nous utilisons la fonction de gestionnaire d'événements de jQuery pour lier les événements clés. Par exemple, lorsque l'utilisateur clique sur une touche numérique, nous ajoutons le numéro correspondant à la zone de saisie dans la zone d'affichage. Lorsque l'utilisateur clique sur les touches plus et moins, nous stockons les opérateurs correspondants dans l'opérateur variable. Lorsque l'utilisateur clique sur la touche de signe égal, nous effectuons le calcul correspondant basé sur l'opérateur actuel et affichons le résultat dans la zone de saisie. Le code d'implémentation spécifique est le suivant :

$(document).ready(function() {
    $('.number').click(function() {
        var input = $('#result').val();
        var number = $(this).text();

        // 判断当前输入框中是否已经有小数点
        if (number === '.') {
            if (input.indexOf('.') !== -1) {
                return;
            }
            if (input === '') {
                input = '0';
            }
        }

        input += number;
        $('#result').val(input);
    });

    $('.operator').click(function() {
        firstNumber = $('#result').val();
        operator = $(this).text();
        $('#result').val('');
    });

    $('#equal').click(function() {
        secondNumber = $('#result').val();
        var result = 0;
        var num1 = parseFloat(firstNumber);
        var num2 = parseFloat(secondNumber);

        switch (operator) {
            case '+':
                result = num1 + num2;
                break;
            case '-':
                result = num1 - num2;
                break;
            case '*':
                result = num1 * num2;
                break;
            case '/':
                result = num1 / num2;
                break;
        }

        $('#result').val(result);
    });

    $('#clear').click(function() {
        firstNumber = '';
        operator = '';
        secondNumber = '';
        $('#result').val('');
    });

    $('#sign').click(function() {
        var input = $('#result').val();
        var prefix = '';

        if (input.charAt(0) === '-') {
            prefix = input.substr(1);
        } else {
            prefix = '-' + input;
        }

        $('#result').val(prefix);
    });

    $('#percent').click(function() {
        var input = $('#result').val();
        var percent = parseFloat(input) / 100;
        $('#result').val(percent);
    });

    $(document).keydown(function(event) {
        var key = event.key;

        if (!isNaN(key)) {
            $('#' + key).click();
        } else if (key === '+' || key === '-' || key === '*' || key === '/') {
            $('#' + key).click();
        } else if (key === 'Enter') {
            $('#equal').click();
        } else if (key === '.') {
            $('#decimal').click();
        } else if (event.ctrlKey && (key === 'c' || key === 'C')) {
            $('#clear').click();
        }
    });
});

Dans ce script JavaScript, nous utilisons la fonction de traitement d'événements de jQueryclick pour lier les événements clés. Lorsque l'utilisateur clique sur une touche numérique, nous lisons le nombre saisi à partir de la valeur de la zone de saisie actuelle. Si la clé est un point décimal, nous devons déterminer s'il y a déjà un point décimal dans la zone de saisie actuelle. , ignorez la clé. Lorsque l'utilisateur clique sur le signe plus ou moins, nous enregistrons le nombre dans la zone de saisie actuelle dans la variable firstNumber, enregistrons l'opérateur dans l'opérateur variable et effaçons la zone de saisie actuelle. Lorsque l'utilisateur clique sur le signe égal, nous lisons la valeur dans la zone de saisie comme le deuxième nombre et effectuons le calcul correspondant en fonction de l'opérateur actuel, et le résultat du calcul sera affiché dans la zone de saisie. Lorsque l'utilisateur clique sur la touche d'effacement, la touche d'inversion ou la touche de pourcentage, nous effectuons respectivement les opérations correspondantes. Lorsque l'utilisateur appuie sur la touche correspondante du clavier, nous simulons l'événement de clic de touche correspondant. Par exemple, lorsque l'utilisateur appuie sur une touche numérique, nous déclencherons l'événement clic de la touche numérique correspondante.

Enfin, grâce à la combinaison d'une page HTML, d'une feuille de style CSS et d'un script JavaScript, nous avons implémenté une calculatrice simple. Les utilisateurs peuvent effectuer quatre opérations arithmétiques à l'aide de la souris ou du clavier, et peuvent effectuer des opérations décimales et d'autres opérations spéciales, telles que l'effacement, la négation et le pourcentage. L'implémentation dans cet article n'est qu'un prototype de base. Si vous avez besoin d'implémenter des fonctions plus riches, telles que des supports, des calculs scientifiques, etc., vous pouvez également développer cette base.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn