0

我正在尝试在我的网站上实现一个简单的工具提示。它工作正常,在光标右侧显示工具提示,但现在我试图获得仅位于光标左侧的相同效果。我如何实现这一目标?

这是我的代码:http: //jsfiddle.net/3r5aq/

可能是一个新手问题,但我自己似乎无法弄清楚这个问题。

4

4 回答 4

1

您可以计算工具提示的宽度。显然,如果页面上有多个,则需要更新选择器。

.mousemove(function(e) {
            var mousex = e.pageX - 5 - $(".tooltip").width(); //Get X coordinates
            var mousey = e.pageY;      //Get Y coordinates
            $('.tooltip')
            .css({ top: mousey, left: mousex})
    });

http://jsfiddle.net/3r5aq/18/

于 2012-06-28T20:17:16.713 回答
1

我会使用以下内容:

var mousex;
var left = e.pageX - $('.tooltip').width() - 20;
if(left > 0)            
    mousex = left;
else
    mousex = 0;

这样,如果链接在页面上离得太远,工具提示就不会在可见区域之外运行。

演示

于 2012-06-28T20:17:19.300 回答
0

您可以通过简单地根据工具提示的大小修改 x 值来将其更改为向左移动:

var mousex = e.pageX - $('.tooltip').width() - 20;
于 2012-06-28T20:16:46.180 回答
0
$(document).ready(function() {
        // Tooltip only Text
        $('.nextTooltip').hover(function(){
                // Hover over code
                var title = $(this).attr('title');
                $(this).data('tipText', title).removeAttr('title');
                $('<p class="tooltip"></p>')
                .text(title)
                .appendTo('body')
                .fadeIn('fast');
        }, function() {
                // Hover out code
                $(this).attr('title', $(this).data('tipText'));
                $('.tooltip').remove();
        }).mousemove(function(e) {
                var mousex = e.pageX;      //Get X coordinates
                var mousey = e.pageY;      //Get Y coordinates
                $('.tooltip').each(function(ix, item) {
                    $(item).css({
                        top: mousey,
                        left: mousex - $(item).width() - 20
                    });
                });
        });
});​
于 2012-06-28T20:20:47.917 回答