Convertitore aggiornato al tasso del giorno
/* Stile per il contenitore del convertitore */
.converter-container {
padding: 25px;
background-color: #f9f9f9;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
max-width: 500px;
margin: 20px auto;
font-family: 'Open Sans', sans-serif;
border: 1px solid #e1e1e1;
}
/* Stile per il titolo */
.converter-container h3 {
text-align: center;
margin-bottom: 20px;
font-size: 24px;
color: #333;
}
/* Stile per i campi di input e le etichette */
.input-group {
margin-bottom: 20px;
display: flex;
align-items: center;
}
.input-group label {
font-weight: bold;
margin-right: 15px;
font-size: 18px;
color: #555;
width: 60px; /* Larghezza fissa per allineamento */
}
.input-group input {
width: calc(100% - 75px);
padding: 12px;
border: 1px solid #ccc;
border-radius: 5px;
font-size: 18px;
}
/* Stile per la sezione inferiore (reset e tasso) */
.converter-footer {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 20px;
padding-top: 15px;
border-top: 1px solid #e9e9e9;
}
/* Stile per il pulsante Reset */
#reset-button {
background: none;
border: 1px solid #aaa;
color: #777;
padding: 5px 10px;
border-radius: 5px;
cursor: pointer;
font-size: 12px;
transition: all 0.2s ease;
}
#reset-button:hover {
background-color: #e9e9e9;
color: #333;
}
/* Stile per il testo del tasso di cambio */
#exchange-rate-info {
font-size: 14px;
color: #777;
text-align: right;
}
document.addEventListener("DOMContentLoaded", function() {
const usdInput = document.getElementById('usd');
const eurInput = document.getElementById('eur');
const rateInfo = document.getElementById('exchange-rate-info');
const resetButton = document.getElementById('reset-button');
let rate; // Variabile per memorizzare il tasso di cambio
// Funzione per ottenere il tasso di cambio
async function fetchExchangeRate() {
try {
const response = await fetch('https://api.exchangerate-api.com/v4/latest/USD');
const data = await response.json();
if (data && data.rates && data.rates.EUR) {
rate = data.rates.EUR;
rateInfo.textContent = `Tasso attuale: 1 USD = ${rate.toFixed(4)} EUR`;
} else {
rateInfo.textContent = 'Errore nel caricamento del tasso.';
}
} catch (error) {
console.error("Errore API:", error);
rateInfo.textContent = 'Impossibile aggiornare il tasso.';
}
}
// Funzione per gestire la conversione
function setupEventListeners() {
if (!rate) return;
// Converti da USD a EUR
usdInput.addEventListener('input', function() {
const usdValue = parseFloat(this.value);
if (!isNaN(usdValue)) {
eurInput.value = (usdValue * rate).toFixed(2);
} else {
eurInput.value = '';
}
});
// Converti da EUR a USD
eurInput.addEventListener('input', function() {
const eurValue = parseFloat(this.value);
if (!isNaN(eurValue)) {
usdInput.value = (eurValue / rate).toFixed(2);
} else {
usdInput.value = '';
}
});
// Funzione Reset
resetButton.addEventListener('click', function() {
usdInput.value = '';
eurInput.value = '';
});
}
// Avvia le funzioni
fetchExchangeRate().then(setupEventListeners);
});