0

我面临设置滚动条顶部位置的问题。其实我需要的是;我正在使用一个 JQuery 键盘插件,我需要在页面的中心底部显示虚拟键盘并完成所有元素。

但是我遇到的问题是,当我在页面底部附近有一个输入字段时,该页面不显示滚动条(这意味着不需要溢出,因为我拥有的所有元素都在我的页面中可见) . 由于我在页面底部显示虚拟键盘并且当焦点元素也位于页面底部时,我需要启动滚动条并且页面应该通过自动向下滚动来上升,因此活动输入字段元素对我。

我试图通过使用这个来设置滚动条

$(document).scrollTop(_scroll_top + (_el_top + _el_height) - _keyboard_top);

其中 _scroll_top 是我当前的滚动顶部位置,_el_top 是焦点元素顶部位置,_el_height 是我的焦点元素高度,_keyboard_top 是键盘的顶部位置。

现在的问题是当我有一个更高的页面时(这意味着滚动条尺寸很小,即滚动条尺寸可能约为屏幕的 60%。高度)scrollTop 工作正常,即使键盘是,我也可以看到活动输入元素可见的。但是当我的页面高度较小时(例如:滚动条大小约为 90% 或者它可能与屏幕大小相同。高度)scrollTop 无法正常工作,因此活动输入元素不可见并且它落后于虚拟键盘。

如何正确设置滚动顶部,以便我能够看到活动输入元素,然后在该元素的底部我可以看到虚拟键盘。

请看附图。那是应该显示实际活动输入元素的地方。

第一张图片是在启用键盘之前:只看到元素的位置,滚动顶部
第二张图片是在启用键盘之后:只看到元素的位置,滚动顶部 启用键盘之前:只需查看元素的位置,滚动顶部

启用键盘后:只需查看元素的位置,滚动顶部

当我的滚动条尺寸很大(大约 90% 的屏幕。高度)时,这就是我所需要的

提前致谢。

PS:如果我表达我的问题的方式混淆了,我非常抱歉。

4

2 回答 2

0

使用jQuery('html,body').scrollTop('other things here')

于 2012-09-21T04:58:33.743 回答
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);

在哪里

  • _scroll_top : 滚动顶部位置
  • _el_top : 活动元素顶部位置
  • _el_height : 活动元素高度
  • _keyboard_top : 键盘元素顶部位置
  • _keyboard_height : 键盘元素高度位置

完成了这个...... :)

于 2012-09-21T06:04:10.280 回答