Home  >  Article  >  Web Front-end  >  Implement calculator using jquery

Implement calculator using jquery

WBOY
WBOYOriginal
2023-05-14 09:38:36913browse

The calculator is one of the indispensable tools in people's daily life, and it is also one of the functions that often needs to be implemented in web development. In this article, we will use the jQuery library to implement a simple calculator that supports four arithmetic operations and decimal operations, and can use keyboard input.

First, we need to create an HTML page to host our calculator. The HTML structure is as follows:

<!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>

In this HTML structure, we have a container for a calculator, which has two sub-elements, one is the display area and the other is the key area. The display area uses an input box to display the operation results, while the key area contains keys such as numbers and operators, as well as other special keys (such as clear, negate, percentage, etc.).

Next, we need to create a CSS style sheet to beautify our calculator. The CSS style is as follows:

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);
}

In this CSS style, we set the overall style of the calculator, including borders, shadows, rounded corners, etc. In order to arrange the keyboard keys closely, we used CSS grid layout technology and set the style of the keys.

Next, we need to write a JavaScript script to handle the logic of the calculator. We use the jQuery library to simplify handling code writing and DOM manipulation.

We first need to define three variables globally:

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

These three variables will store the first number, operator and second number entered by the user respectively.

We use jQuery's event handling function to bind key events. For example, when the user clicks a number key, we add the corresponding number to the input box in the display area. When the user clicks the plus and minus keys, we store the corresponding operators into the variable operator. When the user clicks the equal sign key, we perform the corresponding calculation based on the current operator and display the result into the input box. The specific implementation code is as follows:

$(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();
        }
    });
});

In this JavaScript script, we use jQuery's event processing function click to bind key events. When the user clicks a numeric key, we read the entered number from the value of the current input box. If the key is a decimal point, we need to determine whether there is already a decimal point in the current input box. If it exists, ignore the key. When the user clicks the plus or minus sign, we save the number in the current input box to the variable firstNumber, save the operator to the variable operator, and clear the current input box. When the user clicks the equal sign, we read the value in the input box as the second number and perform the corresponding calculation based on the current operator, and the calculation result will be displayed in the input box. When the user clicks the clear key, invert key or percentage key, we perform the corresponding operations respectively. When the user presses the corresponding key on the keyboard, we simulate the corresponding key click event. For example, when the user presses a number key, we will trigger the click event of the corresponding number key.

Finally, through the combination of HTML page, CSS style sheet and JavaScript script, we implemented a simple calculator. Users can complete four arithmetic operations through mouse or keyboard operations, and can perform decimal operations and other special operations, such as clearing, negation, and percentage. The implementation in this article is just a basic prototype. If you need to implement richer functions, such as supporting brackets, scientific calculations, etc., you can also expand on this basis.

The above is the detailed content of Implement calculator using jquery. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn