Γεια σας, σήμερα θα μάθουμε πώς να χρησιμοποιούμε HTML, CSS & JavaScript για να δημιουργήσουμε μια εφαρμογή προϋπολογισμού. Ακολουθώντας αυτές τις οδηγίες, μπορείτε απλώς να δημιουργήσετε αυτήν την Εφαρμογή προϋπολογισμού σε HTML, CSS και JavaScript. Απλώς τηρώντας τις διαδικασίες που αναφέρονται παρακάτω, θα μπορείτε να αναπτύξετε αυτήν την εκπληκτική εφαρμογή προϋπολογισμού.
Περιγραφή Έργου
Βήμα 1
Η HTML (Γλώσσα σήμανσης υπερκειμένου) θα μας βοηθήσει να δημιουργήσουμε τη δομή για τη λίστα με ορισμένα απαραίτητα χαρακτηριστικά και στοιχεία για τη δημιουργία Έργου εφαρμογής προϋπολογισμού.
Βήμα 2
Στη συνέχεια θα χρησιμοποιήσουμε το CSS (Cascading Stylesheet) το οποίο θα μας βοηθήσει να διαμορφώσουμε το στυλ ή να σχεδιάσουμε το έργο με κατάλληλη επένδυση και ευθυγράμμιση στο Budget App Project.
Βήμα 3
Επιτέλους θα χρησιμοποιήσουμε το JS (JavaScript) το οποίο θα προσθέσει μια λογική για να λειτουργήσει το Έργο εφαρμογής προϋπολογισμού από το τέλος του χρήστη.
Ελπίζω να έχετε μια ιδέα για το έργο.
Κώδικας HTML για την εφαρμογή προϋπολογισμού
<html lang="en"> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Budget App</title> <!-- Font Awesome Icons --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" /> <!-- Google Fonts --> <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500&display=swap" rel="stylesheet" /> <!-- Stylesheet --> <link rel="stylesheet" href="style.css" /> </head> <body> <div class="wrapper"> <div class="container"> <div class="sub-container"> <!-- Budget --> <div class="total-amount-container"> <h3>Budget</h3> <p class="hide error" id="budget-error"> Value cannot be empty or negative </p> <input type="number" id="total-amount" placeholder="Enter Total Amount" /> <button class="submit" id="total-amount-button">Set Budget</button> </div> <!-- Expenditure --> <div class="user-amount-container"> <h3>Expenses</h3> <p class="hide error" id="product-title-error"> Values cannot be empty </p> <input type="text" class="product-title" id="product-title" placeholder="Enter Title of Product" /> <input type="number" id="user-amount" placeholder="Enter Cost of Product" /> <button class="submit" id="check-amount">Check Amount</button> </div> </div> <!-- Output --> <div class="output-container flex-space"> <div> <p>Total Budget</p> <span id="amount">0</span> </div> <div> <p>Expenses</p> <span id="expenditure-value">0</span> </div> <div> <p>Balance</p> <span id="balance-amount">0</span> </div> </div> </div> <!-- List --> <div class="list"> <h3>Expense List</h3> <div class="list-container" id="list"></div> </div> </div> <!-- Script --> <script src="script.js"></script> </body> </html>
Πρώτα θα ξεκινήσουμε με τη δημιουργία της δομής του έργου Budget App για αυτό, καθώς μπορείτε να δείτε τον παραπάνω κώδικα, χρησιμοποιήσαμε όλα τα απαραίτητα στοιχεία και χαρακτηριστικά για τη ρύθμιση της δομής. Ενημερώστε μας να κωδικοποιήσουμε το τμήμα CSS για να προσθέσουμε στυλ και να ευθυγραμμίσουμε τις ετικέτες.
Κωδικός CSS για την εφαρμογή προϋπολογισμού
* { padding: 0; margin: 0; box-sizing: border-box; font-family: "Poppins", sans-serif; } body { background-color: #f7f9fd; } .wrapper { width: 90%; font-size: 16px; max-width: 43.75em; margin: 1em auto; } .container { width: 100%; } .sub-container { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 3em; } .flex { display: flex; align-items: center; } .flex-space { display: flex; justify-content: space-between; align-items: center; } .wrapper h3 { color: #363d55; font-weight: 500; margin-bottom: 0.6em; } .container input { display: block; width: 100%; padding: 0.6em 0.3em; border: 1px solid #d0d0d0; border-radius: 0.3em; color: #414a67; outline: none; font-weight: 400; margin-bottom: 0.6em; } .container input:focus { border-color: #587ef4; } .total-amount-container, .user-amount-container { background-color: #ffffff; padding: 1.25em 0.9em; border-radius: 0.3em; box-shadow: 0 0.6em 1.2em rgba(28, 0, 80, 0.06); } .output-container { background-color: #587ef4; color: #ffffff; border-radius: 0.3em; box-shadow: 0 0.6em 1.2em rgba(28, 0, 80, 0.06); margin: 2em 0; padding: 1.2em; } .output-container p { font-weight: 500; margin-bottom: 0.6em; } .output-container span { display: block; text-align: center; font-weight: 400; color: #e5e5e5; } .submit { font-size: 1em; margin-top: 0.8em; background-color: #587ef4; border: none; outline: none; color: #ffffff; padding: 0.6em 1.2em; border-radius: 0.3em; cursor: pointer; } .list { background-color: #ffffff; padding: 1.8em 1.2em; box-shadow: 0 0.6em 1.2em rgba(28, 0, 80, 0.06); border-radius: 0.6em; } .sublist-content { width: 100%; border-left: 0.3em solid #587ef4; margin-bottom: 0.6em; padding: 0.5em 1em; display: grid; grid-template-columns: 3fr 2fr 1fr 1fr; } .product { font-weight: 500; color: #363d55; } .amount { color: #414a67; margin-left: 20%; } .icons-container { width: 5em; margin: 1.2em; align-items: center; } .product-title { margin-bottom: 1em; } .hide { display: none; } .error { color: #ff465a; } .edit { margin-left: auto; } .edit, .delete { background: transparent; cursor: pointer; margin-right: 1.5em; border: none; color: #587ef4; } @media screen and (max-width: 600px) { .wrapper { font-size: 14px; } .sub-container { grid-template-columns: 1fr; gap: 1em; } }
Δεύτερος έρχεται ο κώδικας CSS, ο οποίος αναφέρεται παραπάνω, καθώς έχουμε διαμορφώσει το στυλ για τη δομή που έχουμε συμπληρώσει καθώς και ευθυγραμμίσαμε το έργο Budget App έτσι ώστε να είναι σωστά τοποθετημένο και να μην ανακατεύεται με τα κατάλληλα στοιχεία CSS. Τώρα δημιουργήσαμε τη δομή χρησιμοποιώντας HTML και διαμορφώσαμε το στυλ της ιστοσελίδας χρησιμοποιώντας CSS, ήρθε η ώρα να προσθέσουμε τη λειτουργικότητα χρησιμοποιώντας JavaScript σε αυτό το έργο.
Κώδικας JavaScript για την εφαρμογή προϋπολογισμού
let totalAmount = document.getElementById("total-amount"); let userAmount = document.getElementById("user-amount"); const checkAmountButton = document.getElementById("check-amount"); const totalAmountButton = document.getElementById("total-amount-button"); const productTitle = document.getElementById("product-title"); const errorMessage = document.getElementById("budget-error"); const productTitleError = document.getElementById("product-title-error"); const productCostError = document.getElementById("product-cost-error"); const amount = document.getElementById("amount"); const expenditureValue = document.getElementById("expenditure-value"); const balanceValue = document.getElementById("balance-amount"); const list = document.getElementById("list"); let tempAmount = 0; //Set Budget Part totalAmountButton.addEventListener("click", () => { tempAmount = totalAmount.value; //empty or negative input if (tempAmount === "" || tempAmount < 0) { errorMessage.classList.remove("hide"); } else { errorMessage.classList.add("hide"); //Set Budget amount.innerHTML = tempAmount; //Set Balance balanceValue.innerText = tempAmount - expenditureValue.innerText; //Clear Input Box totalAmount.value = ""; } }); //Function To Disable Edit and Delete Button const disableButtons = (bool) => { let editButtons = document.getElementsByClassName("edit"); Array.from(editButtons).forEach((element) => { element.disabled = bool; }); }; //Function To Modify List Elements const modifyElement = (element, edit = false) => { let parentDiv = element.parentElement; let currentBalance = balanceValue.innerText; let currentExpense = expenditureValue.innerText; let parentAmount = parentDiv.querySelector(".amount").innerText; if (edit) { let parentText = parentDiv.querySelector(".product").innerText; productTitle.value = parentText; userAmount.value = parentAmount; disableButtons(true); } balanceValue.innerText = parseInt(currentBalance) + parseInt(parentAmount); expenditureValue.innerText = parseInt(currentExpense) - parseInt(parentAmount); parentDiv.remove(); }; //Function To Create List const listCreator = (expenseName, expenseValue) => { let sublistContent = document.createElement("div"); sublistContent.classList.add("sublist-content", "flex-space"); list.appendChild(sublistContent); sublistContent.innerHTML = `<p class="product">${expenseName}</p><p class="amount">${expenseValue}</p>`; let editButton = document.createElement("button"); editButton.classList.add("fa-solid", "fa-pen-to-square", "edit"); editButton.style.fontSize = "1.2em"; editButton.addEventListener("click", () => { modifyElement(editButton, true); }); let deleteButton = document.createElement("button"); deleteButton.classList.add("fa-solid", "fa-trash-can", "delete"); deleteButton.style.fontSize = "1.2em"; deleteButton.addEventListener("click", () => { modifyElement(deleteButton); }); sublistContent.appendChild(editButton); sublistContent.appendChild(deleteButton); document.getElementById("list").appendChild(sublistContent); }; //Function To Add Expenses checkAmountButton.addEventListener("click", () => { //empty checks if (!userAmount.value || !productTitle.value) { productTitleError.classList.remove("hide"); return false; } //Enable buttons disableButtons(false); //Expense let expenditure = parseInt(userAmount.value); //Total expense (existing + new) let sum = parseInt(expenditureValue.innerText) + expenditure; expenditureValue.innerText = sum; //Total balance(budget - total expense) const totalBalance = tempAmount - sum; balanceValue.innerText = totalBalance; //Create list listCreator(productTitle.value, userAmount.value); //Empty inputs productTitle.value = ""; userAmount.value = ""; });
Τελευταίο στάδιο του έργου το JavaScript στο οποίο έχουμε προσθέσει το λογικό και κωδικοποιημένο σύμφωνα με την απαίτηση με κάποιες προϋποθέσεις. Σε αυτόν τον κώδικα έχουμε παραθέσει την κάθε ετικέτα που δημιουργείται στον κώδικα HTML και αργότερα τις χρησιμοποιήσαμε για να κάνουμε αυτό το έργο να λειτουργεί σύμφωνα με το τέλος του χρήστη. Ας δούμε το τελικό αποτέλεσμα του έργου Εφαρμογή προϋπολογισμού με χρήση HTML, CSS και JavaScript (Πηγαίος κώδικας).
Δημιουργήσαμε με επιτυχία την Εφαρμογή προϋπολογισμούχρησιμοποιώντας HTML, CSS και JavaScript. Μπορείτε να χρησιμοποιήσετε αυτό το έργο για τις προσωπικές σας ανάγκες και οι αντίστοιχες γραμμές κώδικα δίνονται με τον σύνδεσμο πένας που αναφέρεται παραπάνω.
Εάν βρίσκετε αυτό το Ιστολόγιο χρήσιμο, τότε φροντίστε να αναζητήσετε τυχαία κώδικα στο google για Έργα Front End με πηγαίους κωδικούς και φροντίστε να ακολουθήσετε τη σελίδα Κώδικας με Τυχαίο Instagram.
Code Idea — codingartist
Γράφτηκε από — Harsh Sawant
Κωδικός από — @harshh9