Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取视图中当前元素的id_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 获取视图中当前元素的id

Javascript 获取视图中当前元素的id,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个按字母顺序排列在页面上的项目列表。我想在页面的一侧创建一个固定元素,显示您当前滚动的字母部分 例如,如果您正在滚动以字母“D”开头的项目,则fixed div将显示“D”。我一直试图用jQuery创建它,但发现它很棘手 每个部分都有“卡片容器”类和与当前字母对应的“id” 即 ... ... ... …这就是诀窍所在: $(窗口)。滚动(函数(){ var winTop=$(this.scrollTop(); 变量字母=$('.card container'); 字母。每个(功能(

我有一个按字母顺序排列在页面上的项目列表。我想在页面的一侧创建一个固定元素,显示您当前滚动的字母部分

例如,如果您正在滚动以字母“D”开头的项目,则fixed div将显示“D”。我一直试图用jQuery创建它,但发现它很棘手

每个部分都有“卡片容器”类和与当前字母对应的“id”


...
...
...

这就是诀窍所在:

$(窗口)。滚动(函数(){
var winTop=$(this.scrollTop();
变量字母=$('.card container');
字母。每个(功能(部分){

if($(this).position().top正如我在评论中所说的:要改进您的代码,您所能做的不多——最多只能获得几毫秒的增益。比如最小化DOM查找,在找到正确的元素时中断循环,删除jQuery等等……但我怀疑您是否会注意到即使在最慢的机器上也会有不同

var字母=$('.card container');
变量letterShow=$('.字母显示h3');
$(窗口)。滚动(函数(){
var winTop=$(this.scrollTop();
字母。每个(功能(部分){

if($(this).position().top您可以获取鼠标点的位置,并将其与div的位置或您定义的任意位置相关联。好的,您可以依靠每个元素的偏移位置以及当前滚动位置来确定应该以哪个元素为目标。对于改进您的代码,您可以做的不多-几毫秒的gain最多。很酷,谢谢你的反馈!@steveax老实说,我不相信会有明显的区别。也许如果有成千上万的卡片容器……测试一下可能会很有趣。