小编Yun*_*hou的帖子

iOS 7 Chrome - 当弹出虚拟键盘时,固定位置抽屉不会停留在底部

我有一个底部抽屉,固定在底部.轻敲时,抽屉将向上滑动并显示更多内容.在iOS 7上,当用户点击输入标签或textarea标签时,会弹出虚拟键盘.但是,当键盘弹出时,抽屉会跳到页面上而不是粘到底部.请参阅下图以获取说明. 在此输入图像描述

我首先在Safari上遇到了这个问题,但是当键盘打开时,我添加了以下代码来将固定位置更改为绝对位置:

// Apple.Device detects if it is an apple device
if (Modernizr.touch && Apple.Device) {
    /* cache dom references */ 
    var $body = jQuery('body'); 

    /* bind events */
    $(document)
    .on('focus', 'input, textarea', function(e) {
        $body.addClass('fixfixed');
    })
    .on('blur', 'input, textarea', function(e) {
        $body.removeClass('fixfixed');
    });
} 
Run Code Online (Sandbox Code Playgroud)

CSS代码:

.fixfixed #drawer {
    bottom: 0;
    margin-left: auto;
    margin-right: auto;
    position: absolute;
    left: 0;
    right: 0;
}
Run Code Online (Sandbox Code Playgroud)

此修复程序适用于iOS 7上的Safari,但它不适用于Chrome.此外,还有一个令人厌倦的行为:

如果页面上有输入标签,我在iPad上点击它,则虚拟键盘会打开,抽屉会跳起来.如果抽屉恰好覆盖了我点击的那个,则点击事件实际上会在抽屉上触发.这是为什么?

我该如何解决这个问题?(我一直在搜索,但如何在iOS上调试Chrome?)

非常感谢您的帮助!

更新

我使用以下代码来检测它是否是iOS 7上的Chrome,如果是这样,我会在虚拟键盘启动时隐藏抽屉,并在虚拟键盘关闭时重新显示抽屉.

function iOSversion() {
    if (/iP(hone|od|ad)/.test(navigator.platform)) {
        // supports iOS …
Run Code Online (Sandbox Code Playgroud)

css google-chrome css-position ios

13
推荐指数
1
解决办法
3926
查看次数

在-webkit-translate之后,CSS修复了Chrome中的定位

我正在创建一个基于响应式网页设计的网页.因此,当它被调整为较小的分辨率时,导航菜单将从顶部栏中移除并变成iPhone Facebook/Path样式的移动滑动菜单.我用这个库实现了它.

同时,我在底部有一个固定的定位面板,可以上下拉动,停靠在页面底部.它非常接近这一点,只是我的底部可以拉起来.

以下是Chrome中的问题:当我滑出移动菜单并向后滑动时(它使用"-webkit-transform:translateX()"),固定定位的面板会中断其位置.

经过一些研究,它似乎是Chrome中的一个错误.但是,有解决方法吗?

可能的重复:使用-webkit-transform时修复的位置不起作用(我在答案中找不到任何解决方法)

非常感谢!

css webkit

6
推荐指数
1
解决办法
3049
查看次数

索引超出范围问题

我按顺序有两个for循环.当我单独运行时,第一个for循环工作非常奇怪.但是当我单独运行第二个循环时,我得到一个超出范围异常错误的索引.有人可以帮我查看错误是什么吗?非常感谢!

for (i = NiPricePointer; i < 551; i++)  
   {
      tempUpper = tempUpper + NiPriceCounter[i];
      if (tempUpper >= (NiPriceRounds * 0.3))
      {
          chart3.Series["Upper 30%"].Points.AddXY(k * 500, ((i - 1) * 0.1 + 5));
          break;
      }
 }

for (i = NiPricePointer; i>0; i--) //This loop always gives me out of range problems.
 {
      tempLower = tempLower + NiPriceCounter[i];
      if (tempLower >= (NiPriceRounds * 0.3))
      {
          chart3.Series["Lower 30%"].Points.AddXY(k * 500, ((i - 1) * 0.1 + 5));
          break;
       }
 }
Run Code Online (Sandbox Code Playgroud)

数组的初始化:

int[] …
Run Code Online (Sandbox Code Playgroud)

c# arrays

4
推荐指数
1
解决办法
638
查看次数

标签 统计

css ×2

arrays ×1

c# ×1

css-position ×1

google-chrome ×1

ios ×1

webkit ×1