簡體   English   中英

在移動 Safari/iPad/iOS 8 中防止身體滾動到頂部

[英]Preventing body scrolling to top in mobile Safari/iPad/iOS 8

我正在使用 bootstrap 詞綴組件在頁面頂部提供一個固定的導航欄。 此導航欄包含表單元素。 當一個表單元素被點擊(給定焦點)時,頁面的主體會滾動到頂部。 有沒有辦法覆蓋此行為以防止滾動?

為了節省別人4個多小時的拖網時間,我將嘗試回答我自己的問題。

在固定的div上不跳過而使用表單元素似乎沒有解決方案。

我的解決方案是將標記更改為引導程序樣式的下拉菜單。

原始選擇表單元素標記:

<select id="gender" name="gender" class="fake-select">
  <option value="Male">Male</option>
  <option value="Female">Female</option>
</select>

Bootstrap樣式下拉標記:

   <li class="dropdown open">
     <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="true">Dropdown <span class="caret"></span>/a>
     <ul class="dropdown-menu" role="menu">
       <li><a href="#">Male</a></li>
      <li><a href="#">Female</a></li>
    </ul>
  </li>

創建了一個插件來證明這一點: http ://plnkr.co/hYTJ9l

https://github.com/takien/FakeSelect庫,該庫通過處理渲染的標記提供了快速的解決方案。

我在模式彈出窗口中有表單。 模態顯示時,.modal-open類將添加到主體。 我在主體上添加了以下樣式,以防止其在彈出窗口處於活動狀態時滾動。

.modal-open {
  position: fixed;
}

將 Safari 瀏覽器更新至 14 或更高版本

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM