【问题标题】:HTML: Autoscroll merged tableHTML:自动滚动合并表
【发布时间】:2017-11-24 03:37:57
【问题描述】:

我有一个表格,第一行被合并并显示图像:

当页面向下滚动时,如何使图像自动滚动,以便图像始终位于可见(!)表的中间?

    <table>
  <tr>
    <th rowspan="10">Image</th>
    <th>c</th>
    <th>c</th>
  </tr>
  <tr>
    <td>c</td>
    <td>c</td>
  </tr>
  <tr>
    <td>c</td>
    <td>c</td>
  </tr>
  <tr>
    <td>c</td>
    <td>c</td>
  </tr>
  <tr>
    <td>c</td>
    <td>c</td>
  </tr>
  <tr>
    <td>c</td>
    <td>c</td>
  </tr>
  <tr>
    <td>c</td>
    <td>c</td>
  </tr>
  <tr>
    <td>c</td>
    <td>c</td>
  </tr>
  <tr>
    <td>c</td>
    <td>c</td>
  </tr>
  <tr>
    <td>c</td>
    <td></td>
  </tr>
</table>

【问题讨论】:

  • “在可见(!)表的中间”到底是什么意思?

标签: javascript jquery html scroll html-table


【解决方案1】:

使用 Jquery 函数 scrollTop() 并处理 on scroll 事件参见Working Fiddle

$(function($) {
    var image = $('.follow-scroll');
    var originalPosition = image.offset().top;

    // Space between element and top of screen (when scrolling)
    var topSpace = 15;

    // Should probably be set in CSS; but here just for emphasis
    image.css('position', 'relative');

    $(window).on('scroll', function(event) {
        var scrollTop = $(window).scrollTop();

        image.stop(false, false).animate({
            top: scrollTop < originalPosition ? 0: scrollTop - originalPosition + topSpace
        }, 300);
    });
});

更新

【讨论】:

  • 谢谢它的工作,但有一个问题,图像“过度滚动”表格,所以如果你向下滚动图像会在表格之外。你知道我该如何解决这个问题吗?跨度>
  • 非常感谢!!限制变量中的“-85”是图像的大小+边距?
猜你喜欢
  • 2018-10-25
  • 2015-04-16
  • 2016-08-20
  • 2011-07-10
  • 2021-08-31
  • 1970-01-01
  • 2013-05-08
  • 1970-01-01
  • 2010-09-25
相关资源
最近更新 更多