2

フィドル: http://jsfiddle.net/G38nx/

だから私はこのテーブルを持っています。特定の td をロールオーバーしているときにツールチップを表示したい。たとえば、値が 27 のセルをポイントすると、「160cm:70kg」というツールチップが表示されます。

それを行う簡単な方法はありますか?

<table>
    <tr>
        <th></th><th>50kg</th><th>55kg</th><th>60kg</th><th>65kg</th><th>70kg</th>
    </tr>

    <tr>
        <th>160cm</th><td>20</td><td>21</td><td>23</td><td>25</td><td>27</td>
    </tr>

    <tr>
        <th>165cm</th><td>18</td><td>20</td><td>22</td><td>24</td><td>26</td>
    </tr>

    <tr>
        <th>170cm</th><td>17</td><td>19</td><td>21</td><td>23</td><td>25</td>
    </tr>

    <tr>
        <th>175cm</th><td>16</td><td>18</td><td>20</td><td>22</td><td>24</td>
    </tr>
</table>

CSS:

table {
    border-spacing: 0;
    border-collapse: collapse;
    overflow: hidden;
    z-index: 1;
}

td, th, .ff-fix {
    cursor: pointer;
    padding: 10px;
    position: relative;
}

td:hover::after,
.ff-fix:hover::after { 
    background-color: #ffa;
    content: '\00a0';  
    height: 10000px;    
    left: 0;
    position: absolute;  
    top: -5000px;
    width: 100%;
    z-index: -1;        
}
tr:hover{
  background-color: #ffa;  
}
}

JS:

function firefoxFix() {

    if ( /firefox/.test( window.navigator.userAgent.toLowerCase() ) ) {

        var tds = document.getElementsByTagName( 'td' );

        for( var index = 0; index < tds.length; index++ ) {
            tds[index].innerHTML = '<div class="ff-fix">' + tds[index].innerHTML + '</div>';                     
        };

        var style = '<style>'
            + 'td { padding: 0 !important; }' 
            + 'td:hover::before, td:hover::after { background-color: transparent !important; }'
            + '</style>';
        document.head.insertAdjacentHTML( 'beforeEnd', style );

    };

};

firefoxFix();
4

2 に答える 2

2

タイトルを作成する方法は次のとおりです。その時点から、カスタム スタイル設定を可能にする jQueryUI ツールチップを適用するのは非常に簡単です。

http://jsfiddle.net/isherwood/G38nx/25

$('td').each(function () {
    var myIndex = $(this).index() + 1;
    var myTitle = $(this).closest('tr').find('th').text();
    myTitle += ":";
    myTitle += $('tr:first-child th:nth-child(' + myIndex + ')').text(); 

    $(this).attr('title', myTitle);

    $(this).tooltip();
});

更新: コメントごとに、画像コンテンツとインスタント (遷移なし) の表示と非表示の例を次に示します。

http://jsfiddle.net/isherwood/G38nx/31

$(this).tooltip({
    content: "<img src='http://placehold.it/50x50' />",
    show: false,
    hide: false
});

次のように、データ属性を使用して各セルの画像を指定する必要があります。

<th data-image-src="<img src='/images/myImage.jpg' />">...</th>

... その後:

$(this).tooltip({
    content: $(this).attr('data-img-src'),
    show: false,
    hide: false
});
于 2013-11-12T17:34:59.217 に答える