表格:显示在tr:悬停

时间:2014-05-16 16:10:25

标签: html-table hover highlight

我想在此网站http://sires.crv4all.us/shop/us/catalog/Holstein

上重现效果

当您悬停<tr>时,它会在光标所在的<tr>行上方显示该信息。

我尝试使用jQuery工具提示,但它在顶部显示thead。我想知道如何让你显示你正在盘旋的tr线。

1 个答案:

答案 0 :(得分:1)

这是一个jsfiddle我制作了这个效果(我对JS / jquery有点新手所以请随意批评我的代码,我知道它非常低效)。

在页面本身看起来这个JS正在推动它:

  var $div = $('<div class="floating-header" style="position:absolute;z-index:1;display:none"><table><thead></thead></table></div>');
    $(document.body).prepend($div);

    var $source = $('#animals thead');

    // Lock widths
    $source.find('th').each(function(){
      var $this = $(this);
      $this.css({width: + $this.width() + 'px'});
    })

    // Position floater
    $div.find('thead').append($source.html());
    var offset = $source.offset();
    $div.css({
      left: offset.left,                                                       
      top: offset.top
    })

    // Strip off junk
    $th = $div.find('th');
    var thIdx = 0;
    var thLength = $th.length;
            var cartEnabled = false;

    $th.each(function(){
      var $this = $(this);
      $this.html($this.find('a').text());
      if (thIdx<=2 || (cartEnabled && thIdx==(thLength-1))) $this.css({opacity:0});
      thIdx++;
    });

    // Exclude first row (initial state on page load; updated by facets.js)
    $('#animals tbody tr:visible').first().addClass('no-header');

    var HEADER_HEIGHT = $div.height();

    // Set-up events
    $('#animals tbody tr').mouseover(function(){
      var $row = $(this);

      setMyTimeout(function(){
        if ($row.hasClass('no-header')) return;
        $div.stop().css({
          top: ($row.offset().top - HEADER_HEIGHT) + 'px',
          left: $row.offset().left, 
        opacity: 0.5}).fadeIn(200);
      },100);
    });

    $('#animals tbody tr').mouseout(function(){
      setMyTimeout(function(){
        $div.fadeOut(200);
      },50);
    });
  });