création d’un bouton d’incrémentation qui s’éteint si la marge est supérieure à 2800 pixels

Je fais un curseur, et j’essaie de comprendre comment je programmerais un bouton spécifiquement.

Je voudrais qu’il se déplace vers la gauche par incréments de 700 pxs sur le clic, mais une fois que le marginLeft est supérieur à 2800 pxs pour ne rien faire sur le clic.

À l’heure actuelle, j’ai la partie qui déplace le conteneur par incréments, mais je ne suis pas sûr de savoir comment faire la partie où il ne fait rien après que “slider_container” a une marge de croissance supérieure à 2800 px.

$("#left").click(function () { $("#slider_container").animate ({ marginLeft: "+=700px" },450 ); }); 

Je me demandais pourquoi ce qui suit ne fonctionne pas:

 if ($("#slider_container").css("marginLeft") >= 2800) { $("#right").click(function () { $("#slider_container").animate ({ marginLeft: "-=0px" },450 ); }); } else { $("#right").click(function () { $("#slider_container").animate ({ marginLeft: "-=700px" },450 ); }); } 

Essaye ça:

 $("#left").click(function () { var margin = parseInt($("#slider_container").css("marginLeft")), move = Math.min(700, 2800 - margin); if (move > 0) { $("#slider_container").animate ({ marginLeft: "+=" + move + "px" },450 ); } }); 

Dans le code que vous venez d’append à la question, vous devez mettre le if dans la function de l’événement click. En outre, animate to "-=0px" , cela a-t-il un sens?

d’accord, je l’ai fait fonctionner, voici la solution que je suis venu avec:

 $("#right").click(function () { if (parseInt($("#slider_container").css("marginLeft")) < -2100) { $("#slider_container").animate ({ marginLeft: -2800 },450 ); } else { $("#slider_container").animate ({ marginLeft: "-=700px" },450 ); } }); $("#left").click(function () { if (parseInt($("#slider_container").css("marginLeft")) > -699) { $("#slider_container").animate ({ marginLeft: 0 },450 ); } else { $("#slider_container").animate ({ marginLeft: "+=700px" },450 ); } });