0

我有一个div由行组成的可滚动。每行都有一个不可见的内部span,当您单击该行时它变得可见。跨度在打开时(正确地)与行的高度相同。

但是,如果我滚动主容器,由于跨度处于固定位置,它们将不再处于同一行的高度。由于这个问题真的很难解释,这里是我准备的 JSFiddle。尝试在不滚动的情况下单击一行。重新加载页面并再次尝试,但在滚动到 div 到底部之后。

position:absolute是我能做的唯一一件事就是让行的跨度“弹出”,但与此同时,也是拧紧相对于行的定位的事情。position:relative应该可以工作,但跨度比行大得多,后者正在使用overflow:hidden.

请注意,该示例是使用数据绑定库创建的一个非常复杂的结构的快速副本:我无法更改此结构,而且 jQuery 甚至不是一个选项。理想情况下,我只需要使用 CSS 来解决这个问题,但我不知道如何:position:fixed如果我滚动 div,是否有任何替代方法可以使用?

4

1 回答 1

1

尝试top在单击事件中设置 with JS。

$('.row').click(function () {
    var pos = $(this).position().top;
    $(this).find('span').css({
        "display": "block",
        "top":pos
    });
});

可能需要从 中添加/减去pos,具体取决于所需的确切位置。

http://jsfiddle.net/daCrosby/LM32h/8/

于 2013-11-08T17:55:35.403 回答