Slider afficher le résultat en pourcentage

Résolu
JE6478 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -  
JE6478 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -

Bonsoir a tous grâce a jordan sur le forum il m a trouvé un tuto slide qui correspond à  ce que je souhaite mais j ai un souci je voudrais avoir un résultat mulitplier par 8%

j ai un slide mini 20000 maxi 1000000 lorsque je déplace le curseur j'ai bien le montant qui s affiche ce qui est très bien par contre dans la case du bas je cherche à avoir le résultat avec 8% en m'arrêtant sur 20 000 je souhaite qu il affiche 1600 etc ...

De plus j ai utilisé la fonction step pour un intervalle de 5000 mais comment faire un intervalle de 5000 jusqu a 50 000€ et intervalle de 10000 de 50000€ à 100 000€ et intervalle de 50 000€ jusqu a 1000000

voici le code et copie d ecran apres 

<p>[vc_column][/vc_column][vc_column_text css=""][/vc_column_text][vc_row][vc_column width="1/4"][/vc_column][vc_column width="1/4"][vc_raw_html css=".vc_custom_1731969255070{border-top-width: 1px !important;border-right-width: 1px !important;border-bottom-width: 1px !important;border-left-width: 1px !important;padding-top: 10px !important;padding-right: 10px !important;padding-bottom: 10px !important;padding-left: 10px !important;border-left-style: solid !important;border-right-style: solid !important;border-top-style: solid !important;border-bottom-style: solid !important;border-radius: 10px !important;border-color: #212121 !important;}"]JTNDc3Ryb25nJTNFJTNDc3BhbiUyMHN0eWxlJTNEJTIyZm9udC1zaXplJTNBJTIwMThwdCUzQiUyMiUzRSUzQ3NwYW4lMjBpZCUzRCUyMmRlbW8lMjIlM0UlM0MlMkZzcGFuJTNFJTIwJUUyJTgyJUFDJTNDc2NyaXB0JTNFJTBBdmFyJTIwc2xpZGVyJTIwJTNEJTIwZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQlMjglMjJteVJhbmdlJTIyJTI5JTNCJTBBdmFyJTIwb3V0cHV0JTIwJTNEJTIwZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQlMjglMjJkZW1vJTIyJTI5JTNCJTBBb3V0cHV0LmlubmVySFRNTCUyMCUzRCUyMHNsaWRlci52YWx1ZSUzQiUwQSUwQXNsaWRlci5vbmlucHV0JTIwJTNEJTIwZnVuY3Rpb24lMjglMjklMjAlN0IlMEElMjAlMjBvdXRwdXQuaW5uZXJIVE1MJTIwJTNEJTIwdGhpcy52YWx1ZSUzQiUwQSU3RCUwQSUzQyUyRnNjcmlwdCUzRSUzQyUyRnNwYW4lM0UlM0MlMkZzdHJvbmclM0U=[/vc_raw_html][vc_raw_html css=".vc_custom_1731969374498{border-top-width: 1px !important;border-right-width: 1px !important;border-bottom-width: 1px !important;border-left-width: 1px !important;padding-top: 10px !important;padding-right: 10px !important;padding-bottom: 10px !important;padding-left: 10px !important;border-left-style: solid !important;border-right-style: solid !important;border-top-style: solid !important;border-bottom-style: solid !important;border-radius: 10px !important;border-color: #212121 !important;}"]JTNDc3Ryb25nJTNFJTNDc3BhbiUyMHN0eWxlJTNEJTIyZm9udC1zaXplJTNBJTIwMThwdCUzQiUyMiUzRSUzQ3NwYW4lMjBpZCUzRCUyMmRlbW8lMjIlM0UlM0MlMkZzcGFuJTNFJTIwJUUyJTgyJUFDJTNDc2NyaXB0JTNFJTBBdmFyJTIwc2xpZGVyJTIwJTNEJTIwZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQlMjglMjJteVJhbmdlJTIyJTI5JTNCJTBBdmFyJTIwb3V0cHV0JTIwJTNEJTIwZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQlMjglMjJkZW1vJTIyJTI5JTNCJTBBb3V0cHV0LmlubmVySFRNTCUyMCUzRCUyMHNsaWRlci52YWx1ZSUzQiUwQSUwQXNsaWRlci5vbmlucHV0JTIwJTNEJTIwZnVuY3Rpb24lMjglMjklMjAlN0IlMEElMjAlMjBvdXRwdXQuaW5uZXJIVE1MJTIwJTNEJTIwdGhpcy52YWx1ZTIlM0IlMEElN0QlMEElM0MlMkZzY3JpcHQlM0UlM0MlMkZzcGFuJTNFJTNDJTJGc3Ryb25nJTNF[/vc_raw_html][/vc_column][vc_column width="1/4"][vc_wp_text]</p>
<style>
.slidecontainer {<br />  width: 100%;<br />}</p>
<p>.slider {<br />  -webkit-appearance: none;<br />  width: 100%;<br />  height: 15px;<br />  border-radius: 5px;<br />  background: #d3d3d3;<br />  outline: none;<br />  opacity: 0.7;<br />  -webkit-transition: .2s;<br />  transition: opacity .2s;<br />}</p>
<p>.slider:hover {<br />  opacity: 1;<br />}</p>
<p>.slider::-webkit-slider-thumb {<br />  -webkit-appearance: none;<br />  appearance: none;<br />  width: 25px;<br />  height: 25px;<br />  border-radius: 50%;<br />  background: #04AA6D;<br />  cursor: pointer;<br />}</p>
<p>.slider::-moz-range-thumb {<br />  width: 25px;<br />  height: 25px;<br />  border-radius: 50%;<br />  background: #04AA6D;<br />  cursor: pointer;<br />}<br /></style>
<div class="slidecontainer">
<p><strong><span style="font-size: 18pt;"><input id="myRange" class="slider" max="1000000" min="10000" step="5000" type="range" value="20000" /></span></strong></div>
<p>[/vc_wp_text][/vc_column][vc_column width="1/4"][/vc_column][/vc_row]</p>

et  JavaScript

var slider = document.getElementById("myRange");
var output = document.getElementById("demo");
output.innerHTML = slider.value; // Display the default slider value

// Update the current slider value (each time you drag the slider handle)
slider.oninput = function() {
  output.innerHTML = this.value;
}

et css

.slider {
  -webkit-appearance: none;
  width: 100%;
  height: 15px;
  border-radius: 5px;  
  background: #d3d3d3;
  outline: none;
  opacity: 0.7;
  -webkit-transition: .2s;
  transition: opacity .2s;
}

.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 25px;
  height: 25px;
  border-radius: 50%; 
  background: #04AA6D;
  cursor: pointer;
}

.slider::-moz-range-thumb {
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: #04AA6D;
  cursor: pointer;
}

le but c est de faire le meme slider que ce site

https://duproprio.com/fr-ca/vendre

voila ou j en suis ma case est vierge car je ne sais pas faire la formul eavec l affiche du resultat je suis totalement novice

merci d avance a tout le monde

A voir également:

27 réponses

JE6478 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 

Meric Jordan cela fonctionne mieux mais a au lieu d afficher 75000 il affiche 80 000 et sur tout le reste 5000 de plus sur les valeurs pourtant défini a l avance je n y comprends rien .

pourtant apres 100 000 tres bien et apres 130000 150000 puis 180000 puis 20000

un sur deux avec 5000 de plus

0
JE6478 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 

a partir de 500000 ca fonctionne normalement de 75000 a 500000 1 valeur sur deux avec résultat +5000 pourtant

0
JE6478 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 

J ai trouvé 5000 il allait a la tranche supérieur comme mentionné dans le code  donc j ai modifié range.step = 5000; et cela marche merci beaucoup Jordan t es au top tout marche nikel et je peux ainsi le personnaliser si besoin c est nikel

sans abuser tu sais comment je peux faire pour avoir les deux résultats écrit  

10 000 au lieu de 10000 espace tout les milles ?

j avais ce code mais j ai cherche a le placé partout et il ne fonctionne pas du tout x est le dernier parametre en plus du css qui me manque

/**
 * @param {number}   en entrée : 15000
 * @returns {string} en sortie : 15 000 €
 */
function formatMontant(valeur) {
  return new Intl.NumberFormat('fr-FR', {
    style: 'currency',
    currency: 'EUR',
    minimumFractionDigits: 0
  }).format(valeur);
}
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

Tu places cette fonction dans le code js  par exemple juste au dessus de la fonction setValue

puis tu modifies la ligne de ton code :

    rangeV.innerHTML = `<span><p class="">PRIX DE VENTE DE VOTRE BIEN</p> <Br><Br>${formatMontant(currentValue)} ?</span>`;

PS: n'oublie pas de remettre le sujet en RESOLU

0
JE6478 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 

Ca marche a merveille c est génial par contre pour le code html" result"comment appliqué le code current ? pour l espace entre les chiffres comme le code précédant j ai essayé tout les style possible et je n arrive pas a l adapté

id="result" 

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
result.innerHTML = formatMontant(prct.toFixed(2));
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JE6478 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 

j ai posé ton code jquery 

mais ma ligne est dans la partie html  result   j ai essayé beaucoup de chose mais il change pas

<p style="text-align: center;">
    <strong>
      <span style="font-size: 18pt;">Vous gagnerez </span>
      <span id="result" style="font-size: 18pt;">1600</span>
      <span style="font-size: 18pt;">€ * en plus pour vos autres projets</span>
    </strong>
  </p>

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

de quoi tu cause ???

Jquery ... où ça ??

le code actuel n'utilise pas une ligne de jquery...  ( d'où est-ce que tu nous sors ça ??! )

Ensuite, je ne comprends pas ce que tu as essayé de faire ?

N'as tu pas vu que la ligne que je t'ai donné se trouve dans le code que je t'ai donné ??

function caclulPrct(){
  let prct = parseFloat(range.value) * 0.08;
  result.innerHTML = prct.toFixed(2);
}

qu'il faut donc changer par

function caclulPrct(){
  let prct = parseFloat(range.value) * 0.08;
  result.innerHTML = formatMontant(prct.toFixed(2));
}

.

0
JE6478 Messages postés 34 Date d'inscription   Statut Membre Dernière intervention  
 

Merci infiniment Jordane

0