2

我们在一个无序列表中有许多列表项,我们一次可以看到五个。当前选中的列表项有它自己的类(“selected”),当我们点击向上或向下时,下一个列表项会获得“selected”类,而前一个会丢失它。我们如何使当带有“已选择”类的列表项从 ul 的可视区域中出来时,滚动条也将与“已选择”项一起滚动?

它可以用鼠标很好地滚动,但是当单击向上/向下按钮时,选定的类会发生变化,但它不会滚动。在 CSS 中,ul 使用overflow:auto 设置样式。我试过改变溢出,但它对结果没有影响。

编辑问题可以在这里看到:http: //jsfiddle.net/E7MSN/63/ 点击文本框上的回车,会出现一个下拉列表。然后使用键盘上/下箭头,继续前进,直到超出界限。请注意,滚动不跟随“选定”元素。

4

2 回答 2

2

用于scrollTop上下移动ul滚动位置。所以在你的情况下:

$(".services ul").scrollTop($('li').index($(".selected")) * $('.services li').height());

在上面的代码中,$('li').index($(".selected"))获取当前选中li元素的编号。然后这个数字乘以每个的高度li

更新了 jsFiddle

您可能需要根据自己的喜好对其进行清理。

于 2012-07-10T01:21:49.283 回答
0

你试过了style="overflow:scroll"吗?

于 2012-07-09T21:16:36.310 回答