Telerik RadToolTipManager Положение подсказки неверно в Chrome
Я использую Telerik RadToolTipManager
элемент управления, чтобы показать всплывающую подсказку на элементах управления HTML (тег привязки, метка диапазона и т. д.), как показано ниже в моем .ascx
страница в asp.net
<telerik:RadToolTipManager OnClientBeforeShow="BeforeShow_Tootip" ID="BVAutoRadToolTipManager" runat="server" ToolTipZoneID="tooltipZoneDiv" Position="TopRight" HideDelay="500" AutoCloseDelay="10000" Skin="Vista" AutoTooltipify="True">
</telerik:RadToolTipManager>
Приведенный выше код работает нормально в IE и FF и отображает всплывающую подсказку в TopRight, как я установил Position="TopRight"
в разметке.
Проблема: теперь, когда я открываю свою страницу в Chrome
он показывает всплывающую подсказку о правильном положении при загрузке страницы в первый раз. но когда я прокручиваю страницу вниз, положение кончика инструмента намного выше указателя мыши.
Можете ли вы дать мне предложение, что есть ли способ установить правильную позицию, когда пользователь hover
элемент. Как мы можем установить положение, используя OnClientBeforeShow
событие RadToolTipManager
,
Спасибо
Любая помощь будет очень ценится!
1 ответ
Это было сообщено как ошибка ( неправильное размещение (положение) RadToolTip в Chrome 61). Обходной путь должен переопределить метод _getPosRelativeToMouse.
Этот код Js должен решить проблему.
Telerik.Web.UI.RadToolTip.prototype._getPosRelativeToMouse = function (targetBounds) {
var elemX = targetBounds.x;
var elemY = targetBounds.y;
//Get last recorded mouse position
var pos = this._getMousePosition();
var mouseX = pos.clientX;
var mouseY = pos.clientY;
//Take into consideration the offsetScroll!
var standard = $telerik.standardsMode;
//$telerik.standardsMode does not do a good job! Extra check is needed for FF!!
//And yet another check needed for Safari! It should always be set to false in order to get the calculations right
if (!$telerik.isIE && document.compatMode != "CSS1Compat") standard = false;
else if ($telerik.isSafari && !(Telerik.Web.Browser.chrome && Telerik.Web.Browser.version >= 61)) standard = false;
if (standard) {
elemX -= $telerik.getCorrectScrollLeft(document.documentElement);
elemY -= document.documentElement.scrollTop;
}
else //NEW: Add support for quircksmode
{
elemX -= $telerik.getCorrectScrollLeft(document.body);
elemY -= document.body.scrollTop;
}
//Calculate the position of the mouse, relative to the targetcontrol
var deltaX = mouseX - elemX;
var deltaY = mouseY - elemY;
return { x: deltaX, y: deltaY };
}