国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

移動端吸頂fixbar的解決方案詳解

2024-05-06 15:36:55
字體:
供稿:網(wǎng)友

需求背景

經(jīng)常會有這樣的需求,當頁面滾動到某一個位置時,需要某個頁面元素固定在屏幕頂部,并且有時需要連續(xù)滾動吸頂。在PC端主要的實現(xiàn)是通過 CSS 的 position: fixed 屬性,但是在移動端,尤其是在安卓端,存在諸多的兼容性問題。

問題

position:fixed給移動端帶來的問題:

IOS8在頁面滾動時,吸頂不連續(xù);頁面滑動時,不見吸頂,頁面滾動停止后,吸頂緩慢出現(xiàn) 滾動到頂部之后,會出現(xiàn)兩個一樣的吸頂, 過一會才恢復(fù)正常。 footer底部輸入框 focus 狀態(tài),footer 底部輸入框被居中,而不是吸附在軟鍵盤上部。 iPhone 4s&5 / iOS 6&7 / Safari 下,頁面底部footer輸入框失去焦點時,header定位出錯。當頁面有滾動動作時,header定位恢復(fù)正常。 iPhone 4 / iOS 5 / Safari下,當頁面發(fā)生跳轉(zhuǎn),再退回時,fixed區(qū)域消失,當內(nèi)容獲得焦點時,fixed區(qū)域才顯示。 安卓低版本/自帶瀏覽器,不支持fixed屬性,iOS4 也是不支持 fixed 的。 三星i9100(S2) / 自帶瀏覽器,在滾屏過程中,fixed定位異常,touchend之后恢復(fù)正常。 部分低版本Android對支持不好,video poster屬性設(shè)置的封面圖會遮擋fixed元素。 QQ、UC瀏覽器滾動頁面時footer定位錯誤,會往上偏移,是由于地址欄收起的緣故。 *remind:不要在 fixed 元素中使用 input / textarea 元素。

解決方案

分別處理各個問題:

IOS

在IOS端,使用 position: sticky 這個屬性,使用類似于 position: relative 和 position: absolute 的結(jié)合體。在目標區(qū)域在屏幕中可見時,它的行為就像position:relative; 而當頁面滾動超出目標區(qū)域時,它的表現(xiàn)就像position:fixed,它會固定在目標位置。

使用時,需要加上私有前綴

position: -webkit-sticky;position: -moz-sticky;position: -ms-sticky;position: sticky;

對于 position:sticky 的使用,需要注意很多的細節(jié),sticky滿足以下條件才能生效:

1、具有sticky屬性的元素,其父級高度必須大于sticky元素的高度。

2、sticky元素的底部,不能和父級底部重疊。(這條不好表述,文后詳細說明)

3、sticky元素的父級不能含有overflow:hidden 和 overflow:auto 屬性

4、必須具有top,或 bottom 屬性。

同時要注意,sticky元素僅在他父級容器內(nèi)有效,超出容器范圍則不再生效了。

安卓

滾動距離超過某位置時,js動態(tài)設(shè)置樣式;為了防止慣性滾動引起的fix不及時的情況,在 touchstart、 touchmove 、 touchend 事件都進行監(jiān)聽。

// 注意處理遮罩層的位置  var scrollHandler = function () {    if (topLength < me.getScrollTop()) {      target.css('position', 'fixed');      me.replaceEle.show();    }    else {      target.css('position', 'relative');      me.replaceEle.hide();    }  };  // 安卓情況下,防止慣性滾動引起的fix不及時的情況  if (/(Android)/i.test(navigator.userAgent)) {    $(window).on('scroll', scrollHandler);    $(document.body).on('touchstart', scrollHandler);    $(document.body).on('touchmove', scrollHandler);    $(document.body).on('touchend', function () {      scrollHandler();      setTimeout(scrollHandler, 1000);    });  }            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 庆元县| 饶阳县| 洮南市| 金湖县| 桐柏县| 高雄市| 宜君县| 浦县| 天气| 青河县| 邵阳县| 普洱| 永平县| 枣阳市| 达州市| 沙雅县| 刚察县| 韶关市| 宜都市| 泊头市| 潢川县| 濉溪县| 和静县| 北票市| 望城县| 永平县| 班玛县| 峨边| 宁武县| 新安县| 黄龙县| 辉南县| 三亚市| 江达县| 牟定县| 江华| 湖州市| 会泽县| 福州市| 新兴县| 泊头市|