我有一个滚动部门,其中包含按字母顺序分组的酒店列表。在这个分区之上,我有一个按字母顺序排列的链接索引,点击后,我想在分区内向上滚动相应的字母项目。
我花了大约一个小时搜索网页并尝试各种技巧,并没有发现任何能够满足我所需要的东西,或者至少我能理解的东西;我不是jQuery的天才。
非常感谢任何帮助!
答案 0 :(得分:16)
你想要的是element.scrollIntoView();
这将滚动浏览器窗口/ div以使页面上显示一个元素。
此示例:fiddle链接
更新:添加了更完整的动态示例。
<强> CSS 强>
#container {
overflow: auto;
height: 50px;
}
.scrollto {
color: blue;
text-decoration: underline;
cursor: pointer;
}
<强> HTML 强>
<span class="scrollto">a</span> <span class="scrollto">e</span> <span class="scrollto">i</span>
<div id='container'>
<div id="a">a</div>
<div id="b">b</div>
<div id="c">c</div>
<div id="d">d</div>
<div id="e">e</div>
<div id="f">f</div>
<div id="g">g</div>
<div id="h">h</div>
<div id="i">i</div>
</div>
<强> JS 强>
$('.scrollto').click(function() {
$('#' + $(this).text()).get(0).scrollIntoView();
// or $('#' + $(this).text())[0].scrollIntoView();
});
基本上在这个例子中,我创建了一个小的溢出div,导致它有一个滚动条。
然后我在其内部的div标签上使用id
个锚点来标记其中的不同区域。我在div之外有一个跨度,可以在点击时自动滚动到溢出的div内的某个锚点。
@Wayne Smallman :根据评论中的html代码,这就是您要使用的内容
$('div#index ul li a').click(function() {
$($(this).attr('href')).get(0).scrollIntoView();
});