Se você está procurando um tutorial simples e direto para criar um conversor de moedas em JavaScript, este post é para você. Vamos te guiar passo a passo na construção de um conversor funcional com HTML, CSS e JavaScript.
Antes de começarmos, veja o exemplo funcional no CodePen abaixo para ter uma ideia do que vamos construir:
See the Pen Conversor de moedas by Código Fácil (@CodigoFacil) on CodePen.
Abaixo, dividimos o código em três partes: HTML, CSS e JavaScript. Cada parte é essencial para construir o conversor de moedas que você viu no CodePen.
HTML: Estrutura do Conversor
O HTML fornece a base estrutural para o nosso conversor. Ele inclui os campos para entrada de valores, seleção de moedas e o botão para converter.
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Conversor de Moedas</title>
</head>
<body>
<div class="caixa">
<h1>Conversor de Moedas</h1>
<div class="conversor">
<!-- Entrada de valor -->
<label for="valor">Valor em moeda de origem:</label>
<input type="number" id="valor" placeholder="Digite o valor">
<!-- Seleção da moeda de origem -->
<label for="moeda-origem">De:</label>
<select id="moeda-origem">
<option value="USD">Dólar (USD)</option>
<option value="EUR">Euro (EUR)</option>
</select>
<!-- Seleção da moeda de destino -->
<label for="moeda-destino">Para:</label>
<select id="moeda-destino">
<option value="BRL">Real (BRL)</option>
<option value="USD">Dólar (USD)</option>
<option value="EUR">Euro (EUR)</option>
</select>
<!-- Botão para conversão -->
<button onclick="converterMoeda()">Converter</button>
<!-- Resultado da conversão -->
<p id="resultado"></p>
</div>
</div>
</body>
</html>
CSS: Estilizando o Conversor
O CSS cuida da aparência do nosso conversor, tornando-o agradável e fácil de usar.
*{
box-sizing: border-box;
}
/* Estilo geral */
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
background-color: #f4f4f4;
}
/* Estilo do container principal */
.caixa {
max-width: 400px;
margin: 50px auto;
padding: 20px;
background: #fff;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
/* Título */
h1 {
text-align: center;
color: #333;
}
/* Labels e campos */
.conversor label {
display: block;
margin: 10px 0 5px;
color: #555;
}
.conversor input,
.conversor select {
width: 100%;
padding: 10px;
margin-bottom: 15px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 16px;
}
/* Botão */
button {
width: 100%;
padding: 10px;
background: #007bff;
color: white;
border: none;
border-radius: 4px;
font-size: 16px;
cursor: pointer;
}
button:hover {
background: #0056b3;
}
/* Resultado */
#resultado {
margin-top: 20px;
font-size: 18px;
text-align: center;
color: #333;
}
JavaScript: Lógica do Conversor
O JavaScript é o motor por trás do conversor, responsável por calcular os valores com base nas moedas selecionadas.
/**
* Função para converter o valor entre as moedas selecionadas.
*/
function converterMoeda() {
// Obtém o valor digitado pelo usuário
const valor = parseFloat(document.getElementById("valor").value);
// Obtém as moedas selecionadas
const moedaOrigem = document.getElementById("moeda-origem").value;
const moedaDestino = document.getElementById("moeda-destino").value;
// Taxas de câmbio fixas (para fins de exemplo)
const taxasCambio = {
USD: { BRL: 5.0, EUR: 0.85, USD: 1 },
EUR: { BRL: 5.9, USD: 1.18, EUR: 1 },
BRL: { USD: 0.2, EUR: 0.17, BRL: 1 },
};
// Valida o valor digitado
if (isNaN(valor)) {
document.getElementById("resultado").textContent = "Por favor, insira um valor válido.";
return;
}
// Realiza a conversão
const valorConvertido = valor * taxasCambio[moedaOrigem][moedaDestino];
// Exibe o resultado
document.getElementById("resultado").textContent =
`${valor} ${moedaOrigem} = ${valorConvertido.toFixed(2)} ${moedaDestino}`;
}
Resultado Final
Ao combinar HTML, CSS e JavaScript, você terá um conversor funcional e estilizado. Para usar taxas de câmbio reais, é possível integrar uma API, como a do ExchangeRatesAPI.
Gostou deste tutorial? Experimente criar seu próprio conversor de moedas em JavaScript e compartilhe suas ideias! 🚀