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

问题描述 投票:0回答:1

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

问题是当我将输入的焦点放在手机上时,键盘弹出,并且输入看不见。我尝试滚动页面以弹出键盘后查看输入的位置,但是在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手机上使用。我该怎么做才能使其在手机上工作?

javascript jquery
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.