0
var docH = $(document).height(),
    viewPortH = $(window).height(),
    wrapper = $("section"),
    valRight = wrapper.css("right");

  if (docH > viewPortH && valRight != w3) {
    wrapper.stop().animate({
      "right": -w3
    }, 700);
  }

valRight != w3我想知道拥有第二个条件(w3在文档前面定义)是否有用(在性能方面)。假设没有它,代码可以完美运行,但我认为它可能有用:

当 jQuery 读取这个并看到文档比窗口高时,即使right值已经是,它也会执行该函数,-w3这会导致一些不必要的开销。我想通过额外的条件来解决这个问题。但在这种情况下它有用吗?

4

1 回答 1

1

A!=对两个数字比排队不必要的动画帧要快得多。

但是,您可以通过以下方式节省更多时间;

var wrapper = $("section"),
    valRight = wrapper.css("right");

if (valRight != w3) {
  var docH = $(document).height(),
    viewPortH = $(window).height();


  if (docH > viewPortH) {
    wrapper.stop().animate({
      "right": -w3
    }, 700);
  }
}

...因为您将height()在事件中停止不必要的 jQuery 对象和计算valRight != (-?)w3

于 2013-01-09T10:02:15.620 回答