【问题标题】:Telerik RadToolTipManager Tooltip position incorrect in ChromeTelerik RadToolTipManager 工具提示位置在 Chrome 中不正确
【发布时间】:2017-11-08 06:54:26
【问题描述】:

我正在使用 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 显示提示,因为我在标记中设置了 Position="TopRight"

问题:现在,当我在Chrome 中打开我的页面时,它会在第一次加载页面时在正确位置显示工具提示。 但当我向下滚动页面时,工具提示位置远高于鼠标指针

您能否给我一个建议,当用户hover 元素时,有什么方法可以正确设置位置。我们如何使用RadToolTipManagerOnClientBeforeShow事件设置位置。

谢谢

任何帮助将不胜感激..!!

【问题讨论】:

    标签: jquery asp.net telerik rad-controls kendo-tooltip


    【解决方案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 };
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      • 2018-01-21
      相关资源
      最近更新 更多