jQuery 工具工具提示,绝对位置和位置利润

发布于 2024-12-19 13:16:52 字数 1602 浏览 1 评论 0原文

我正在使用 jquery 插件: Tools.tooltip() 看起来定位是确实是个问题。

当工具提示用position:absolute封装在某个容器中时,您需要在conf字典中添加relative:true,以便工具提示正确定位。

现在的问题是:如果您同时拥有 position:absolute 包装器以及带有边距的工具提示触发器,则位置将会混乱。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script src="http://cdn.jquerytools.org/1.2.6/all/jquery.tools.min.js"></script>
<style>
.trigger
{
    width:100px;
    height:40px;
    background-color:red;
    margin:5px;
    position:relative;
}
.tooltip 
{
    display:none;
    color:white;
    background-color:#333;
    padding:10px;
    border-radius:3px;
}
</style>
<div class='wrapper' style='position:absolute;left:100px;top:100px'>
    <div class='trigger' style='margin-top:100px;margin-left:100px'>
        hover to see the tooltip
    </div>
    <div class='tooltip'>
        The awesome tooltip
    </div>
</div>

<script type='text/javascript'>
    $('.trigger').tooltip({
        position:'bottom center',
        relative:true,
    });
</script>

在这种情况下,工具提示应该显示在触发器下方并居中。但是当鼠标悬停在触发器(红色框)上时,工具提示(灰色框)将显示在此位置:

在此处输入图像描述

就好像边距完全被忽略了一样。另外,如果我根本不使用边距(仅具有position:absolute的包装并在conf中使用relative:true),工具提示仍然显示在一个奇怪的位置:

在此处输入图像描述

与正确位置相比,工具提示有点偏左和偏上,我对此一无所知。

我该如何解决这个问题?多谢! :)

I'm using the jquery plugin: Tools.tooltip() Seems like the positioning is really a problem.

When the tooltip is wrapped in some container with position:absolute, you'll need to add relative:true in the conf dictionary so the tooltips are positioned properly.

Now the problem is: if you have both a position:absolute wrapper as well as tooltip triggers with margin, the position will be messed up

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script src="http://cdn.jquerytools.org/1.2.6/all/jquery.tools.min.js"></script>
<style>
.trigger
{
    width:100px;
    height:40px;
    background-color:red;
    margin:5px;
    position:relative;
}
.tooltip 
{
    display:none;
    color:white;
    background-color:#333;
    padding:10px;
    border-radius:3px;
}
</style>
<div class='wrapper' style='position:absolute;left:100px;top:100px'>
    <div class='trigger' style='margin-top:100px;margin-left:100px'>
        hover to see the tooltip
    </div>
    <div class='tooltip'>
        The awesome tooltip
    </div>
</div>

<script type='text/javascript'>
    $('.trigger').tooltip({
        position:'bottom center',
        relative:true,
    });
</script>

The tooltip is supposed to show beneath the trigger and centered in this case. But when mouse over the trigger(red box), tooltip(gray box) is showing at this position:

enter image description here

As if the margin is totally ignored. Also, if I don't use margin at all(only having a wrapper of position:absolute and uses relative:true in conf), the tooltip still shows up in a strange position:

enter image description here

The tooltip is a little bit to the left and top comparing to the correct position, which I have no idea about.

How may I solve this problem? Thanks a lot! :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无名指的心愿 2024-12-26 13:16:52

因此,如果有人想使用 jQuery 工具提示:

  • 如果工具提示被包裹在 'position:absolute' 或
    'position:fixed' 容器,使用 ini 提供 'relative:true'
    配置。
  • 在这种情况下,不要向工具提示的触发器添加任何边距

So if anyone wants to use jQuery tool tooltip:

  • If the tooltip is wrapped in a 'position:absolute' or
    'position:fixed' container, supply 'relative:true' with the ini
    configurations.
  • In this case, don't add any margin to the trigger of the tooltip
莫相离 2024-12-26 13:16:52

我给你做了一个小小提琴,“有点”解决了你的问题。

在此小提琴中,工具提示放置在触发器下方,但需要 x 次“悬停”才能使其 100% 正确放置。我认为这是由工具提示库中的某些(错误)功能引起的。

这是小提琴: http://jsfiddle.net/Gjw74/1/

和修改后的 JavaScript:

$('.trigger').tooltip({
    position:'bottom center',
    relative:true,
    onShow: function(){
        var $trigger = this.getTrigger();
        this.getTip().css({
            'margin-top' : $trigger.css('margin-top'),
            'margin-left' : $trigger.css('margin-left') 
        });
    }
 });

I've made you a little fiddle, which "kindda" solves your problem.

In this fiddle, the tooltip gets places beneath your trigger, but it takes x number of "hovers" to get it 100% correctly placed. I'm thinking this is caused by some (mal)function in the tooltip library.

Here's the fiddle: http://jsfiddle.net/Gjw74/1/

And the modified javascript:

$('.trigger').tooltip({
    position:'bottom center',
    relative:true,
    onShow: function(){
        var $trigger = this.getTrigger();
        this.getTip().css({
            'margin-top' : $trigger.css('margin-top'),
            'margin-left' : $trigger.css('margin-left') 
        });
    }
 });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文