Fondamentalement, l'inverse des abs. Si j'ai:
if($this.find('.pdxslide-activeSlide').index() < slideNum-1){ slideNum = -slideNum }
console.log(slideNum)
Peu importe la console, renvoie TOUJOURS un nombre positif. Comment puis-je réparer ça?
Si je fais:
if($this.find('.pdxslide-activeSlide').index() < slideNum-1){
_selector.animate({left:(-slideNum*sizes.images.width)+'px'},750,'InOutPDX')
}
else{
_selector.animate({left:(slideNum*sizes.images.width)+'px'},750,'InOutPDX')
}
cela fonctionne bien, mais ce n'est pas "sec" et juste stupide d'avoir un bloc entier de code juste pour un -
Math.abs(num) => Always positive
-Math.abs(num) => Always negative
Vous réalisez cependant que pour votre code
if($this.find('.pdxslide-activeSlide').index() < slideNum-1){ slideNum = -slideNum }
console.log(slideNum)
Si l'index trouvé est 3 et si slideNum est 3,
alors 3 <3-1 => faux
so slideNum reste positif ??
Cela ressemble plus à une erreur de logique pour moi.
Le revers de abs est Math.abs(num) * -1
.
La formule de base pour inverser positif à négatif ou négatif à positif:
i - (i * 2)
Pour obtenir une version négative d'un nombre en JavaScript, vous pouvez toujours utiliser l'opérateur bitwise ~
.
Par exemple, si vous avez a = 1000
Et que vous devez le convertir en négatif, vous pouvez procéder comme suit:
a = ~a + 1;
ce qui donnerait a
étant -1000.
Êtes-vous sûr que le contrôle va dans le corps du if
? Comme dans le cas de la condition dans if
est-elle toujours vraie? Parce que sinon, le corps du if
ne sera jamais exécuté et slideNum
restera positif. Je vais risquer de penser que c'est probablement ce que vous voyez.
Si j'essaye ce qui suit dans Firebug, cela semble fonctionner:
>>> i = 5; console.log(i); i = -i; console.log(i);
5
-5
slideNum *= -1
Devrait également fonctionner. De même que Math.abs(slideNum) * -1
.
var x = 100;
var negX = ( -x ); // => -100
Si vous ne souhaitez pas utiliser Math.Abs * -1, vous pouvez utiliser cette simple instruction if: P
if (x > 0) {
x = -x;
}
Bien sûr, vous pouvez en faire une fonction comme celle-ci
function makeNegative(number) {
if (number > 0) {
number = -number;
}
}
makeNegative (-3) => -3 makeNegative (5) => -5
J'espère que cela t'aides! Math.abs fonctionnera probablement pour vous, mais si ce n'est pas si peu
var i = 10;
i = i / -1;
Résultat: -10
var i = -10;
i = i / -1;
Résultat: 10
Si vous divisez par 1, le nombre sera toujours inversé.
num * -1
Cela le ferait pour vous.
Utilisez 0 - x
x étant le nombre que vous voulez inverser
À la vanille javascript
if(number > 0)
return -1*number;
Où nombre ci-dessus est le nombre positif que vous souhaitez convertir.
Ce code convertira simplement les nombres positifs en nombres négatifs en multipliant par -1