вы уверены, что именно эти строки вызывают проблему? -
Не могли бы вы подтвердить, что "var posTop = Startpos.top - Stoppos.top;"
возвращает действительное значение типа Integer / Double в posTop? На прошлой неделе я писал код для одного из моих проектов, и у меня была та же проблема с NaN, я пытался разобрать значение в Integer, и это сработало.
Поскольку вы делаете математические вычисления, попробуйте разобрать значения в Double / Int, прежде чем вычесть их,
Иногда решение довольно простое, и мы склонны усложнять его.
Если синтаксический анализ не работает, возможно, вы не передаете правильное значение из массива. Попробуйте что-то вроде Startpos [0] .Top
Надеюсь, это поможет, удачи!