繁体   English   中英

滚动到溢出div中的特定元素

[英]Scroll to specific element in overflowing div

我有一个具有溢出功能的div ,其作用类似于列表(因为在所有浏览器中自定义并保持这种方式时,真正的“选择”是一件麻烦事)。

问题是,名单很长,我想,当页面加载列表“选择”元素会或多或少地在中间div ,像推杆selected=selectedoptionselect

这是小提琴

提前致谢。

您可以使用锚点:

  1. 为您的列表项之一指定特定的ID(例如:“ anchor”)
  2. 当您链接到此页面时,将#anchor标签#anchor到url,您的列表将被拖到具有相应ID的列表项中。

网址示例: www.yourpage.com/list应该变成www.yourpage.com/list#anchor

演示将向您显示。

<li id="anchor"><span>12 years</span> ... </li>

<a href="#anchor">anchor link</a>

可编辑的小提琴

如果使用jQuery,则可以使“选择”容器滚动到特定元素。 在这种情况下,我向随机li添加一个.select类,只是为了演示其工作原理。

然后,您可以按.selected元素根据其父元素的像素数在#wraptable容器上滚动。

$(function(){   
    var offsetSelectedElement = $(".selected").position().top;
    $("#wraptable").scrollTop(offsetSelectedElement);
});

演示

编辑:

要添加jQuery,请在页面顶部添加库:

<html>
    <head>
        <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
    </head>
    ...
 </html>

如果您不想使用jQuery,则仍然可以通过纯JavaScript来实现相同的结果,但是需要更多代码:

var offsetSelectedElement = document.getElementsByClassName("selectedItem")[0];
var wrappable = document.getElementById("wraptable");
wrappable.scrollTop =  offsetSelectedElement.offsetTop;

演示

如果您只是想将滚动条带到中间,则可以尝试以下js:

 document.getElementById('wraptable').scrollTop = document.getElementById('wraptable').scrollHeight / 2;

它将#wraptable的滚动滚动到中间。

现场演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM