$(window).scrollTop(value)在移动设备上不起作用

时间:2019-11-08 06:13:53

标签: javascript jquery

我在下面输入了地图: 输入地图

问题在于,当我将输入的焦点放在手机上时,键盘会弹出,并且输入会消失。 我尝试滚动页面以弹出键盘后查看输入的位置,但是在Android上的Chrome $(window).scrollTop(value)中不起作用。我这样使用它:

$shopListSearch.on('focus', function() {

  let
    $this = $(this),
    thisHeight = $this.innerHeight(),
    value = thisOffsetTop - thisHeight - $header.innerHeight();
  
  //timeout to wait while keyboard pops up
  setTimeout(function() {
    $window.scrollTop(value);
  }, 2000);

});

此功能可在移动设备的Chrome模拟器中使用,但不适用于真正的Android手机。我该怎么做才能使其在手机上正常工作?

1 个答案:

答案 0 :(得分:0)

问题是页面顶部的脚本计算出的高度块。因此,当kb在Android上弹出时,视图框大小会更改,顶部块高度也会更改。结果是,当滚动位置相同时,输入y-pos减小。解决方法很简单-在计算顶部块的高度时检查输入是否在焦点上。