将Bootstrap的工具提示对齐到元素的左侧?

时间:2013-05-17 22:45:12

标签: twitter-bootstrap alignment tooltip

我正在使用Bootstrap's工具提示脚本,并且当我对截断的文本提供工具提示时出现问题。我正在使用CSS来截断文本,然后在该文本上有一个工具提示,以便您可以将鼠标悬停在上面并查看全文。我的问题是,当文本被截断时,工具提示仍然以元素为中心,就好像它没有被截断一样。

除了这个问题之外,我还是喜欢它的风格如下。我想拥有它,以便工具提示对齐元素的左侧,工具提示上的箭头也会向左移动。或者,如果工具提示位于元素的一侧,则它将与顶部对齐,箭头位于顶部。

基本上它现在看起来像这样:

             ################
             # TOOLTIP      #
             ################
                    v
Some really long text th...

我希望它看起来像这样:

################
# TOOLTIP      #
################
 v
Some really long text th...

或者像这样:

################ > Some really long text th...
# TOOLTIP      #
################

谢谢。

[编辑]我已经确定了箭头的移动,这只是简单的css。但是工具提示本身的对齐似乎是javascript的一部分。

2 个答案:

答案 0 :(得分:7)

我认为您需要调整tooltip-arrow CSS以及整个tooltip的位置。这会让你接近它,但它可能需要更多的调整......

.tooltip-arrow CSS

.tooltip.right .tooltip-arrow{
    top: 5%;
    margin-top: 0px;
}

.tooltip.top .tooltip-arrow{
    left: 6%;
    bottom:1px;
}

jQuery函数调整工具提示的位置..

$("[data-placement=right]").hover(function(){
    $('.tooltip').css('top',parseInt($('.tooltip').css('top')) + 8 + 'px')
});

Demo on Bootply

编辑:您也可以只使用CSS定位.tooltip。 Alternate demo

.tooltip.right {
    margin-top:8px;
}

答案 1 :(得分:0)

要实现以下布局:

          element
             ^
################
# TOOLTIP      #
################

CSS

.tooltip.bottom .tooltip-arrow {
  left: 90% !important;
}

JS

$('[data-toggle=tooltip]').on('inserted.bs.tooltip', function() {
  $('.tooltip').css('opacity', 0);
});

$(''[data-toggle=tooltip]'').on('shown.bs.tooltip', function() {
  var $tooltip = $('.tooltip');
  $tooltip.css('left', $tooltip.offset().left - $tooltip.width() / 2);
  $tooltip.css('opacity', 1);
});

由于隐藏和显示工具提示而导致延迟很小,但无论工具提示大小如何,定位都能正常工作。

相关问题