我正在使用telerik RadToolTipManager
控件在html控件上显示工具提示。(锚标记,范围标签等),如下所示在asp.net的.ascx
页面中
<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中显示tootip,因为我在标记中设置了Position="TopRight"
。
问题现在,当我在Chrome
中打开我的页面时,它首次在页面加载时显示正确位置的工具提示。 但当我向下滚动页面时,工具提示位置远远高于鼠标指针。
请您给我一个建议:当用户hover
元素时,有没有办法正确设置位置。我们如何使用OnClientBeforeShow
的 RadToolTipManager
事件设置排名。
谢谢
非常感谢任何帮助.. !!
答案 0 :(得分:1)
这被报告为错误(Wrong placement (position) of RadToolTip in 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 };
}