gpt4 book ai didi

javascript - js或Jquery - 获取可滚动div的可视区域

转载 作者:搜寻专家 更新时间:2023-11-01 04:34:21 27 4
gpt4 key购买 nike

我目前有一个动态填充的可滚动 div。
我有一个函数可以捕获 UpArrow 和 DownArrow keyPresses 并更改父 div 中的类以一次选择一个 child (基本上这模仿了一个选择输入)

这是我想做的:我需要更改 div 的可视区域(向下或向上)以显示最近“选定”的子级,但前提是该子级尚未在父级的可视区域中。

所以我需要以某种方式获取与父 div 的 scrollHeight 相关的可视区域...但我不确定该怎么做...

另外,我不知道如何设置父div的可视区域。

如有任何帮助,我们将不胜感激!

最佳答案

哎呀,想通了

首先我通过

获取可视区域
var viewableTop = $("#parentDiv").scrollTop;
var viewableBottom = $("#parentDiv").innerHeight() + $("#parentDiv").scrollTop;

因此 viewableTop 和 viewableBottom 之间的任何内容都是可见的。但实际上你不需要知道这一点。相反,您需要了解以下内容

//getting child position within the parent
var childPos = $("#childDiv").position().top;
//getting difference between the childs top and parents viewable area
var yDiff = ($("#childDiv").position().top + $("#childDiv").outerHeight()) - $("#parentDiv").innerHeight()

然后

//if upArrow and childPosition is above viewable area (that's why it goes negative)
if(event.keyCode == 38 && childPos < 0)
$("#parentDiv").scrollTop += childPos;//add the negative number to the scrollTop
//if downArrow and the difference between childs top and parents viewable area is greater than the height of a childDiv
else if(event.keyCode == 40 && yDiff > $("#childDiv").outerHeight()-1)
$("#parentDiv").scrollTop += yDiff;//add the difference to the parents scrollTop

关于javascript - js或Jquery - 获取可滚动div的可视区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2052288/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com