我遇到设置滚动条顶部位置的问题。其实我需要的是;我正在使用一个JQuery Keyboard插件,我需要在页面中心底部显示虚拟键盘并完成所有元素。
但我遇到的问题是当我在页面底部附近有一个输入字段时,该页面不显示滚动条(这意味着不需要溢出,因为我拥有的所有元素都是可见的我的页面)。由于我在页面底部显示虚拟键盘,当聚焦元素也位于页面底部时,我需要启动滚动条,页面应该通过自动向下滚动来显示,因此活动输入字段元素可见我。
我尝试使用此
设置滚动条$(document).scrollTop(_scroll_top + (_el_top + _el_height) - _keyboard_top);
其中_scroll_top是我当前的滚动顶部位置,_el_top是聚焦元素的顶部位置,_el_height是我的聚焦元素高度,_keyboard_top是键盘的顶部位置。
现在的问题是当我有一个更高的页面(这意味着滚动条大小很小,滚动条大小可能是屏幕的大约60%。高度)scrollTop正常工作,我甚至可以看到活动的输入元素虽然键盘是可见的。但是当我的页面高度很小时(例如:滚动条大小约为90%或者它可能与screen.Height的大小相同),scrollTop无法正常工作,因此活动输入元素不可见,它落后于虚拟键盘。
如何正确设置滚动顶部,以便我能够看到活动的输入元素,然后在该元素的底部我可以看到虚拟键盘。
请参阅附图。这就是应该显示实际活动输入元素的位置。
第一张图片是在启用键盘之前:只需看到元素的位置,滚动顶部
第二张图像是启用键盘后:只需看到元素的位置,滚动顶部
这是我的滚动条尺寸很大时所需要的(大约90%的屏幕。高度)
提前致谢。
P.S:如果我对表达问题的方式感到困惑,我感到非常抱歉。答案 0 :(得分:0)
使用jQuery('html,body').scrollTop('other things here')
;
答案 1 :(得分:0)
感谢您的回复。 我找到了解决问题的方法。 在页面的底部,我创建了一个虚拟div元素。
<div id="scroll_dummy"></div>
最初这个div的高度为零。我将键盘的高度应用到这个div。因此,您的页面大小将会增加,因此可以轻松移动滚动顶部。在关闭时再次恢复这种风格。
然后在我应用scrollTop的地方,我已经完成了这个。
$("#scroll_dummy").css("height", _keyboard_height);
$(document).scrollTop(_scroll_top + (_el_top + _el_height) - _keyboard_top);
其中
完成这个......:)