基本上是abs的反向。如果我有:

if ($this.find('.pdxslide-activeSlide').index() < slideNum - 1) {
  slideNum = -slideNum
}
console.log(slideNum)

无论哪个控制台始终返回正数。我该如何解决?

如果我做:
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')
}

它可以正常工作,但不是“DRY”,只是愚蠢地为-设置了整个代码块。

最佳答案

Math.abs(num) => Always positive
-Math.abs(num) => Always negative

您确实意识到,对于您的代码
if($this.find('.pdxslide-activeSlide').index() < slideNum-1){ slideNum = -slideNum }
console.log(slideNum)

如果找到的索引是3而slideNum是3,
然后3 否
因此slideNum 仍为正

在我看来,这更像是一个逻辑错误。

10-01 14:06