跳转到可滚动div内的内容

时间:2010-09-17 18:44:11

标签: javascript jquery html css scrollable

我收到了以下HTML:

<div style="height:200px;overflow-y:scroll;">
  <table>.....</table>
</div>

使用此设置,我有点模仿已定义@size属性的扩展<select>控件。因此,用户可以在表格中选择一行。有没有办法让表格“跳起来”,以便所选行显示在div的顶部,垂直滚动条滚动到其位置。我不需要实际的滚动效果。该表应该在行单击时立即改变它的位置。

3 个答案:

答案 0 :(得分:2)

这可能有效:

$("#scrollableDiv").animate({
  scrollTop: 200 // scrolls to the bottom
}, 1000);

答案 1 :(得分:1)

我建议使用scrollTop(或者甚至根据需要设置动画)。

$('div')[0].scrollTop = 200 //would set the scrollable div to 200px down.

http://jsfiddle.net/8mepH/

答案 2 :(得分:1)

以下是用于以下代码的修改后的摘录: http://www.balupton.com/sandbox/jquery-scrollto/demo/

做你想做的事:

            // Fetch the scrollable div
            $container = $('#scrollable');
            // Fetch the target div
            $target = $('#target');

            // Prepare the Inline Element of the Container
            var $inline = $('<span/>').css({
                'position': 'absolute',
                'top': '0px',
                'left': '0px'
            });
            var position = $container.css('position');

            // Insert the Inline Element of the Container
            $container.css('position','relative');
            $inline.appendTo($container);

            // Determine the Offsets
            var startOffset = $inline.offset().top,
                targetOffset = $target.offset().top,
                offsetDifference = targetOffset - startOffset;

            // Perform the jump
            $container.css('scrollTop',offsetDifference+'px')

我们在这里添加一个内联,以确保我们在可滚动区域内获得正确的起始位置。我们使用偏移差异,所以如果你想从起始位置做动画动画,而不是跳到其他地方。