这两个数学问题不应该给出相同的答案吗?括号/括号首先完成,对吧?因此它应该将它们全部加起来,然后将其除以2,然后减去10.下面的第二个答案是给出正确的值我需要的值,另一个给出一个很长的距离值。
var pleft = $(this).offset().left + ($(this).width() /2) - ($("#question-wrapper").width() / 2) - 10;
var pleft = (($(this).offset().left + $(this).width() + $("#question-wrapper").width()) / 2) - 10;
答案 0 :(得分:5)
var x = $(this).offset().left;
var y = $(this).width();
var z = $("#question-wrapper");
var pleft = x + (y/2) - (z/2) - 10
var pleft = ((x + y + z) / 2) - 10
希望这有助于消除差异。
答案 1 :(得分:2)
我已经分解了公式,所以你可以看到:
var pleft = $(this).offset().left <------------------- not divided
+ ($(this).width() /2)
- ($("#question-wrapper").width() / 2)
- 10;
var pleft = (
(
$(this).offset().left <--------------------- divided
+ $(this).width()
+ $("#question-wrapper").width()
)
/ 2)
- 10;
在第一种情况下,$(this).offset()。left不会被2除,而在第二种情况下,这就是为什么它们不会给出相同的结果
答案 2 :(得分:0)
在第一部分中,你永远不会将第一部分与2分开。这就是它关闭的原因。
var pleft = ($(this).offset().left / 2) + ($(this).width() /2) - ($("#question-wrapper").width() / 2) - 10;
首先完成括号/括号,对吧?
是的,但在你的例子中它们并不完全相同。
你的代码做了什么: