用于图像上映射区域的Bootstrap Popover / Tooltip

时间:2012-07-27 13:22:17

标签: javascript jquery css html5 twitter-bootstrap

我正在尝试将来自Twitter的Bootstrap包和我已映射出来的图像结合起来,以便部分将 - 在翻转时 - 在映射区域旁边生成一个弹出/工具提示。这是我到目前为止所做的:

  1. 我使用CSS而不是旧的Image Map方式进行映射。代码如下。
  2. 图像及其上的区域可见,并在翻转时突出显示。
  3. 现在我已经能够显示弹出框,但它始终固定在图像的左上角(即使原始图像重新定位)。

    HTML:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="ISO-8859-1">
    <title>Image Map</title>
    
    <link href="bootstrap/css/bootstrap.css" rel="stylesheet">
    <link href="bootstrap/css/bootstrap-responsive.css" rel="stylesheet">
    <link href="style.css" rel="stylesheet">
    
    <link href="demo.css" rel="stylesheet">
    <link href="style_common.css" rel="stylesheet">
    <link href="style5.css" rel="stylesheet">
    </head>
    <body>
        <div class="container">
            <div id="wrapper">
                <a href="#" id="jon" rel="popover" data-original-title="Milage Rate"
                    data-content="Content..."><div id="milagerate"></div></a> <a
                    href="#"><div id="fairmarketvalue"></div></a> <a href="#"><div
                        id="netassessment"></div></a> <a href="#"><div id="adjustedfmv"></div></a>
                <a href="#"><div id="exemptions"></div></a> <a href="#"><div
                        id="taxablevalue"></div></a>
            </div>
        </div>
    
        <script src="jquery-1.7.2.js"></script>
        <script src="bootstrap/js/bootstrap-tooltip.js"></script>
        <script src="bootstrap/js/bootstrap-popover.js"></script>
        <script type="text/javascript">
            $(function() {
                $('#jon').popover({
                    placement : 'bottom'
                });
            });
        </script>
    </body>
    </html>
    

    CSS:

    @CHARSET "ISO-8859-1";
    
    a {
        color:white;
    }
    
    #wrapper{
        background:white url(PB.jpg) no-repeat 0 0;
        position:relative;
        z-index:0;
        width:530px;
        height:570px;
    }
    
    #milagerate {
        position:absolute;
        width:27px;
        height:17px;
        top:346px;
        left:347px;
    }
    
    #fairmarketvalue {
        position:absolute;
        width:56px;
        height:15px;
        top:319px;
        left:177px;
    }
    
    #netassessment {
        position:absolute;
        width:50px;
        height:17px;
        top:346px;
        left:194;
    }
    
    #adjustedfmv {
        position:absolute;
        width:51px;
        height:17px;
        top:346px;
        left:141px;
    }
    
    #exemptions {
        position:absolute;
        width:51px;
        height:17px;
        top:346px;
        left:245px;
    }
    
    #taxablevalue {
        position:absolute;
        width:51px;
        height:17px;
        top:346px;
        left:295px;
    }
    
    #milagerate:hover, #fairmarketvalue:hover, #netassessment:hover, #adjustedfmv:hover, #exemptions:hover, #taxablevalue:hover {
        border:1px solid red;
    }
    

    如何强制弹出框出现在映射区域旁边?

1 个答案:

答案 0 :(得分:2)

好的,我得到了一些帮助,我已经解决了我最初遇到的问题。我的问题是popover代码与我的锚(图片)而不是内容相关联。话虽这么说,我必须为每一段内容使用个人ID:

<script type="text/javascript">
    $(function() {
        $('#jon').popover({
            placement : 'right'
        });

        $('#jon2').popover({
            placement : 'right'
        });

        $('#jon3').popover({
            placement : 'right'
        });

        $('#jon4').popover({
            placement : 'right'
        });

        $('#jon5').popover({
            placement : 'right'
        });

        $('#jon6').popover({
            placement : 'right'
        });
    });
</script>

在CSS中,我遵循了这种模式:

...
#thing1, #jon3 {
    position:absolute;
    width:50px;
    height:17px;
    top:346px;
    left:194px;
}

#thing2, #jon4 {
    position:absolute;
    width:51px;
    height:17px;
    top:346px;
    left:141px;
}
...

我确信有更优雅的方式来解决这个问题,但目前这段代码对我来说非常适合。