固定的CSS元素在iOS中输入聚焦时向下移动页面

时间:2017-03-10 13:36:57

标签: javascript jquery html ios css

我遇到一些UI问题,无法解决问题。

在iOS设备上,当我点击底部固定购买元素的输入数量值时,它会将整个页面移到底部。

CSS:

.product-bottom-sticky {
  position: fixed;
  bottom: 0;
  background: #000000;
  width: 100%;
  padding: 0 14px 2px 0;
  color: #ffffff;
  display: none;
  z-index: 1;

  ul {
    margin: 0; 

    li a span {
      display: block;
      font-size: 0.4em;
      text-align: center;
      margin-top: -6px;
      margin-bottom: 5px;
    }
  }

  .zopim-call-chat {
    float: left; 
    font-size: 2em;
    color: #ffffff;
  }

  .sticky-add-to-cart {
    float: right; 
    margin: 6px 0 0 0;
    padding: 3px 22px 9px 22px;
    text-decoration: none;
  }

  .sticky-add-to-cart i {
    font-size: 1.4em;
    top: 2px;
    left: -3px;
  }

}

.sticky-qty div.form-control {
  margin-bottom: 0px;
  margin-top: 6px;
}

@media #{$mobile-breakpoint} {

  .product-bottom-sticky {
    display: block;
  }

  .sticky-chat {
    float: left;
    border-right: 1px solid #333333;
    padding-right: 15px;
    padding-top: 7px;
    padding-left: 14px;
    background: #555555;
  }

  .sticky-qty {
    float: right;
    width: 31%; 
    padding-top: 7px;
  }

  .sticky-qty label {
    float: left;
    color: #ffffff;
    margin-top: 10px;
    display: none;
  }

  .sticky-qty .quantity-input {
    width: 31%;
    float: right;
    padding-top: 7px;
  }

  .sticky-add .button-add-to-cart {
    background: #f14fa1;
    border-color: #f14fa1;
  }

  .sticky-add,
  .sticky-out {
    float: right;
    width: 52%;
    padding-top: 7px;
  }

}

更新

我在这里找到了一个部分解决方案:

https://www.igorkromin.net/index.php/2016/05/20/mobile-safari-scrolling-problem-with-an-input-field-inside-a-fixed-div/

CSS:

html,body{
    -webkit-overflow-scrolling : touch !important;
    overflow: auto !important;
    height: 100% !important;
}

这解决了这个问题,但又产生了另一个问题:当我点击标签时,它会滚动到顶部。

更新2

这是我的JS似乎有冲突 - 也许因为它使用body,html。自从我添加的输入修复后,有没有办法对它进行排序?它似乎只是在更改选项卡时跳转到选项卡的顶部。

JS:

function scrollToTab(x) {
  $("html, body").animate({
    scrollTop: $(x).offset().top - 10
  }, scrollSpeed);
}

0 个答案:

没有答案