如何设置网页的滚动顶部

时间:2012-09-21 04:56:32

标签: javascript jquery html css

我遇到设置滚动条顶部位置的问题。其实我需要的是;我正在使用一个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无法正常工作,因此活动输入元素不可见,它落后于虚拟键盘。

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

请参阅附图。这就是应该显示实际活动输入元素的位置。

第一张图片是在启用键盘之前:只需看到元素的位置,滚动顶部
第二张图像是启用键盘后:只需看到元素的位置,滚动顶部 Before Enable the keyboard: Just see the element's position, sroll top

After enable the keyboard: Just see the element's position, scroll top

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

提前致谢。

P.S:如果我对表达问题的方式感到困惑,我感到非常抱歉。

2 个答案:

答案 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);

其中

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

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