jquery - IE8/9 中溢出滚动列表的相对顶部位置

标签 jquery css internet-explorer scroll position

我有一个互动,我有一个 <ul>有一长串<li> s 包裹在 <div> 中使它们可滚动的容器。

现在我将列表转换为我想要显示特定 <li> 的状态作为最上面的元素。我不能使用 scrollTop 来做到这一点属性,因为该元素可能离底部很远,无法将其滚动到容器顶部的所需位置。

这就是为什么我将 ul 的相对顶部位置设置为所需值的原因。

请看一下这个 jsFiddle:http://jsfiddle.net/pJfNp/13/

在除 IE8 和 9 之外的所有浏览器中,事件/红色元素显示在顶部,但 Internet Explorer 似乎无法“分离”<ul> 的底部来自 <div> ,它以某种方式固定在那里。如果我尝试使用 scrollTop 会发生什么将其显示为第一项。

我乐于接受关于如何做类似事情的新想法!

最佳答案

在 IE8 中测试过,应该也能在 IE9 中工作:)

jsFiddle demo

var liHeight = $('li.active').height();
$('ul').height( $('ul').height() + (liHeight*3) );
var activePos = $('li.active').position().top;
$('div').animate({scrollTop:activePos},1000);

如果您有时需要显示最后一个 li 这意味着您需要额外的 3 个 li 高度 所以只需将它乘以 3 并将结果添加到 ul 元素高度。
除了动画之外,还可以为 div

scrollTop 设置动画

关于jquery - IE8/9 中溢出滚动列表的相对顶部位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12027047/

相关文章:

IE 中的 CSS 流体中心定位问题

javascript - jQuery 遍历循环删除元素

javascript - jQuery DOM 操作在 forEach 循环中行为异常

javascript - 如何使用 css 关键帧同步两个动画?

jQuery 模板将隐藏的表单字段渲染为 IE 中可见的输入框

html - 如何使该站点在非 firefox 浏览器中工作?

javascript - 单击div时缓慢出现

javascript - jQuery 临时解除绑定(bind)事件

html - 如何避免 sass partials 生成冗余的 css 代码?

html - 未知属性名称(无法使用 CSS 调整图像大小)