作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我目前有一个动态填充的可滚动 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/
我正在尝试获得一个按钮,按下该按钮时会改变颜色。当再次按下时,它应该变回原来的颜色。我究竟做错了什么? 我的模板中的按钮: export default { data: {
我是一名优秀的程序员,十分优秀!