Проблема возникает из-за того, что эта старая библиотека вычисляет смещение (местоположение) одного из связанных элементов, используя прокрутку тела, а эта последняя возвращает значение с плавающей запятой.
https://github.com/jquery/api.jquery.com/issues/608 проблема с анимацией Jquery ScrollTop
Связанный код в старой библиотеке:
Перепробовал много обходных путей для округления значения, но, поскольку этот инструментарий предоставляется в виде dll, невозможно внедрить некоторую дополнительную логику скрипта.
$type = Sys.UI.Point = function Point(x, y) {
/// <summary locid="M:J#Sys.UI.Point.#ctor"></summary>
/// <param name="x" type="Number" integer="true"></param>
/// <param name="y" type="Number" integer="true"></param>
/// <field name="x" type="Number" integer="true" locid="F:J#Sys.UI.Point.x"></field>
/// <field name="y" type="Number" integer="true" locid="F:J#Sys.UI.Point.y"></field>
var e = Function._validateParams(arguments, [
{name: "x", type: Number, integer: true},
{name: "y", type: Number, integer: true}
]);
if (e) throw e;
this.x = x;
this.y = y;
}
function DomElement$getLocation(element)
var ex, ownerDoc = element.ownerDocument, documentElement = ownerDoc.documentElement,
offsetX = Math.round(clientRect.left) + (documentElement.scrollLeft || (ownerDoc.body ? ownerDoc.body.scrollLeft : 0)),
offsetY = Math.round(clientRect.top) + (documentElement.scrollTop || (ownerDoc.body ? ownerDoc.body.scrollTop : 0));
...
return new Sys.UI.Point(offsetX, offsetY);
Мое исправление в основном заключается в переходе на последнюю версию AjaxControlToolkit (20.1.0.0). Я протестировал эту новую библиотеку в той же среде, в которой изолировал проблему, и эта последняя версия уже устранила проблему с плавающей запятой.
связанный код в обновленной библиотеке:
Неперехваченное Sys.ArgumentOutOfRangeException: Sys.ArgumentOutOfRangeException: значение должно быть целым числом. Имя параметра: y Фактическое значение: 625,5757446289062. at Function.Error$create [as create] (http://localhost/ScriptResource.axd?d=N9v-ex4jLgM8lHFu-PPLr2Aehppm2kCvkWv-sT6x6bMHJlxsZJOQTws_pzPtAPh87KkT1s87GA2MC3sHg242UGoTeK7AnwWYZ8KDIobeAa5Q7ArWAJqVtXJAaHQ_aXoSGb23JA2&t=ffffffffdd783992:847:15) at Function.Error$argumentOutOfRange [as argumentOutOfRange] (http: //localhost/ScriptResource.axd?d=N9v-ex4jLgM8lHFu-PPLr2Aehppm2kCvkWv-sT6x6bMHJlxsZJOQTws_pzPtAPh87KkT1s87GA2MC3sHg242UGoTeK7AnwWYZ8KDIobeAa5Q7ArWAJqVtXJAaHQ_aXoSGb23JA2&t=ffffffffdd783992:908:21) at Function$_validateParameterType [as _validateParameterType] (http://localhost/ScriptResource.axd?d=N9v-ex4jLgM8lHFu-PPLr2Aehppm2kCvkWv -sT6x6bMHJlxsZJOQTws_pzPtAPh87KkT1s87GA2MC3sHg242UGoTeK7AnwWYZ8KDIobeAa5Q7ArWAJqVtXJAaHQ_aXoSGb23JA2&t=ffffffffdd783992:802:23) at Function$_validateParameter [as _validateParameter] (http://localhost/ScriptResource.axd?d=N9v-ex4jLgM8lHFu-PPLr2Aehppm2kCvkWv-sT6x6bMHJlxsZJOQTws_pzPtAPh87KkT1s87GA2MC3sHg242UGoTeK7AnwWYZ8KDIobeAa5Q7ArWAJqVtXJAaHQ_aXoSGb23JA2&t=f fffffffdd783992:719:18) at Function$_validateParams [as _validateParams] (http://localhost/ScriptResource.axd?d=N9v-ex4jLgM8lHFu-PPLr2Aehppm2kCvkWv-sT6x6bMHJlxsZJOQTws_pzPtAPh87KkT1s87GA2MC3sHg242UGoTeK7AnwWYZ8KDIobeAa5Q7ArWAJqVtXJAaHQ_aXoSGb23JA2&t=ffffffffdd783992:668:22) at new Point (http://localhost /ScriptResource.axd?d=N9v-ex4jLgM8lHFu-PPLr2Aehppm2kCvkWv-sT6x6bMHJlxsZJOQTws_pzPtAPh87KkT1s87GA2MC3sHg242UGoTeK7AnwWYZ8KDIobeAa5Q7ArWAJqVtXJAaHQ_aXoSGb23JA2&t=ffffffffdd783992:4739:22) at Function.DomElement$getLocation [as getLocation] (http://localhost/ScriptResource.axd?d=N9v-ex4jLgM8lHFu-PPLr2Aehppm2kCvkWv- sT6x6bMHJlxsZJOQTws_pzPtAPh87KkT1s87GA2MC3sHg242UGoTeK7AnwWYZ8KDIobeAa5Q7ArWAJqVtXJAaHQ_aXoSGb23JA2&t=ffffffffdd783992:5195:16) at Function.DomElement$getBounds [as getBounds] (http://localhost/ScriptResource.axd?d=N9v-ex4jLgM8lHFu-PPLr2Aehppm2kCvkWv-sT6x6bMHJlxsZJOQTws_pzPtAPh87KkT1s87GA2MC3sHg242UGoTeK7AnwWYZ8KDIobeAa5Q7ArWAJqVtXJAaHQ_aXoSGb23JA2&t=ffffffffdd783992:5126:36) at Sys.Extended.UI._CommonToolkitScripts.getBounds (http://localhost/facilities/facilitiesrenovation.aspx?TSM_HiddenField=ctl00_smScriptManager_HiddenField&TSM_CombinedScripts=%3b%3bAjaxControlToolkit%2c+Version% 3d4.1.51116.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d28f01b0e84b6d53e%3aen-US%3a07ead49c-3169-4e2b-b447-bacc452e967a%3ade1feab2%3afcf0e993%3af2c8e708%3a720a52bf%3af9cec9bc%3a589eaa30%3a698129cf%3afb9b4c57%3accb96cf9: 3:3108) в Sys. Extended.UI.PopupBehavior.getBounds (http://localhost/facilities/facilitiesrenovation.aspx?TSM_HiddenField=ctl00_smScriptManager_HiddenField&TSM_CombinedScripts=%3b%3bAjaxControlToolkit%2c+Version%3d4. 1.51116.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d28f01b0e84b6d53e%3aen-US%3a07ead49c-3169-4e2b-b447-bacc452e967a%3ade1feab2%3afcf0e993%3af2c8e708%3a720a52bf%3af9cec9bc%3a589eaa30%3a698129cf%3afb9b4c57%3accb96cf9:29: 1919)
Sys.UI.Point = function Sys$UI$Point(x, y) {
/// <summary locid="M:J#Sys.UI.Point.#ctor" />
/// <param name="x" type="Number"></param>
/// <param name="y" type="Number"></param>
/// <field name="x" type="Number" integer="true" locid="F:J#Sys.UI.Point.x"></field>
/// <field name="y" type="Number" integer="true" locid="F:J#Sys.UI.Point.y"></field>
/// <field name="rawX" type="Number" locid="F:J#Sys.UI.Point.rawX"></field>
/// <field name="rawY" type="Number" locid="F:J#Sys.UI.Point.rawY"></field>
var e = Function._validateParams(arguments, [
{name: "x", type: Number},
{name: "y", type: Number}
]);
if (e) throw e;
this.rawX = x;
this.rawY = y;
this.x = Math.round(x);
this.y = Math.round(y);
}
person
Helder Fernandez
schedule
06.04.2021