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
,这会导致一些不必要的开销。我想通过额外的条件得到这个。但在这种情况下它是否有用?
答案 0 :(得分:1)
针对两个数字的!=
比排队不必要的动画帧要快得多。
但是,您可以通过以下方式节省更多时间;
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
计算。