1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| const range = document.querySelector('#range');
const result = document.querySelector('#result');
// Liste des valeurs autorisées
const allowedValues = [
10000, 20000, 30000, 40000, 50000, 75000, 100000, 125000, 150000, 175000,200000, 225000, 250000, 275000, 300000, 325000,350000,
375000, 400000, 425000, 450000, 475000, 500000, 550000, 600000,
650000, 700000, 750000, 800000, 850000, 900000, 950000, 1000000
];
function caclulPrct(){
let prct = parseFloat(range.value) * 0.08;
result.innerHTML = formatMontant(prct.toFixed(2));
}
function formatMontant(valeur) {
return new Intl.NumberFormat('fr-FR', {
style: 'currency',
currency: 'EUR',
minimumFractionDigits: 0
}).format(valeur);
}
setValue = ()=>{
const newValue = Number((range.value - range.min) * 100 / (range.max - range.min) );
newPosition = 10 - (newValue * 0.2);
range.step = 5000;
let currentValue = parseInt(range.value);
console.log('currentValue', currentValue);
// Vérifier si la valeur est autorisée
if (!allowedValues.includes(currentValue)) {
// Trouver la valeur la plus proche dans la liste autorisée
let closestValue = allowedValues.reduce((prev, curr) => {
return (Math.abs(curr - currentValue) < Math.abs(prev - currentValue) ? curr : prev);
});
// Mettre à jour la valeur de l'input avec la valeur la plus proche
range.value = closestValue;
console.log('closestValue', closestValue);
currentValue = closestValue;
}
console.log('range.value',range.value); // N'hésites pas à ouvrir la console JS de ton navigateur pour voir ce qui s'y affiche
rangeV.innerHTML = `<span><p class="text-box">PRIX DE VENTE DE VOTRE BIEN</p><Br><Br>${formatMontant(currentValue)}</span>`;
rangeV.style.left = `calc(${newValue}% + (${newPosition}px))`;
caclulPrct();
}
document.addEventListener("DOMContentLoaded", setValue);
range.addEventListener('input', setValue); |