Calculator Tools Calculator Tools
Create

Dynamic Wine Calculator

Jun 22, 2025

About this app

A fun and interactive wine calculator to help enthusiasts balance wine types and optimize wine pouring.

Dynamic Wine Calculator Dynamic Wine Calculator Select Wine Type Red White Sparkling Rose Add Wine Calculate Total Wines

Related apps

Put this on your site

Source

                    <html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">

<title>Dynamic Wine Calculator</title>
<meta name="description" content="A fun and interactive wine calculator to help enthusiasts balance wine types and optimize wine pouring.">
<meta name="keywords" content="wine, calculator, wine calculator, wine pouring, wine types, wine enthusiasts">

<!-- Libraries -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.min.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.6.0/css/fontawesome.min.css" crossorigin="anonymous">

<script type="text/javascript">
try {
document.addEventListener("DOMContentLoaded", function() {
const wineData = {
"Red": [],
"White": [],
"Sparkling": [],
"Rose": []
};

document.getElementById("addWineButton").addEventListener("click", function() {
const type = document.getElementById("wineType").value;
const name = document.getElementById("wineName").value;
const quantity = parseInt(document.getElementById("wineQuantity").value);

if (!name || !type || isNaN(quantity) || quantity <= 0) {
alert("Please enter valid wine details.");
return;
}

wineData[type].push({ name, quantity });
updateWineList();
clearInputs();
});

function updateWineList() {
const listContainer = document.getElementById("wineList");
listContainer.innerHTML = "";
for (let type in wineData) {
if (wineData[type].length > 0) {
listContainer.innerHTML += `<h5>${type} Wines:</h5>`;
wineData[type].forEach(wine => {
listContainer.innerHTML += `<div>${wine.name} (${wine.quantity})</div>`;
});
}
}
}

function clearInputs() {
document.getElementById("wineName").value = "";
document.getElementById("wineQuantity").value = "";
}

document.getElementById("calculateWineButton").addEventListener("click", function() {
const totalWines = Object.values(wineData).flat().reduce((acc, wine) => acc + wine.quantity, 0);
alert(`Total Wines: ${totalWines}`);
});

});
} catch (error) {
throw error;
}
</script>

<style>
body {
background: linear-gradient(45deg, #f5f7fa, #c3cfe2);
font-family: 'Arial', sans-serif;
}
#main-container {
margin-top: 50px;
text-align: center;
background: white;
border-radius: 20px;
padding: 30px;
box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}
button {
background-color: #ff4757;
border: none;
border-radius: 5px;
color: white;
}
button:hover {
background-color: #ff6b81;
}
h5 {
margin-top: 20px;
}
</style>
</head>
<body>
<div id="main-container" class="container">
<h1>Dynamic Wine Calculator</h1>
<div class="mb-3">
<input type="text" id="wineName" class="form-control" placeholder="Wine Name">
<input type="number" id="wineQuantity" class="form-control mt-2" placeholder="Quantity">
<select id="wineType" class="form-control mt-2">
<option value="">Select Wine Type</option>
<option value="Red">Red</option>
<option value="White">White</option>
<option value="Sparkling">Sparkling</option>
<option value="Rose">Rose</option>
</select>
<button id="addWineButton" class="btn btn-danger mt-3">Add Wine</button>
</div>
<button id="calculateWineButton" class="btn btn-danger">Calculate Total Wines</button>
<div id="wineList" class="mt-4"></div>
</div>
</body>
</html>