移動端開發——吸頂效果的解決方案
一、前言
吸頂效果是web開發中一種常見的互動方式,常見的應用場景有導航、搜尋框等等。(圖片來自其他部落格,感謝博主)
二、在移動端開發遇到的問題
吸頂效果的基本的開發思路,利用scroll事件進行監聽scrollTop的值,當scrollTop達到一定的值得時候設定吸頂元素的position : fixed;屬性。但是問題是:安卓支援scroll事件和fixed屬性,但是ios8.0的scroll事件不是連續觸發的,只會在scroll事件結束後觸發一次scroll事件,同時ios還不支援設定fixed屬性。
Ios支援position: sticky可以很好的解決這個問題,設定了sticky
可以知道sticky屬性有以下幾個特點:
該元素並不脫離文件流,仍然保留元素原本在文件流中的位置。
當元素在容器中被滾動超過指定的偏移值時,元素在容器內固定在指定位置。元素固定的相對偏移是相對於離它最近的具有滾動框的祖先元素,如果祖先元素都不可以滾動,那麼是相對於viewport來計算元素的偏移量
三、解決思路
1.檢測客戶端是安卓系統還是ios系統。
2.如果是安卓系統新增scroll事件監聽
3.如果是ios系統新增position: sticky
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/> <title>pc sticky</title> <style> * { margin: 0; padding: 0; } .banner { height: 200px; } .nav { height: 40px; background-color: skyblue; border: 1px solid silver; } .sticky { /*滾過初始位置時自動吸頂*/ position: -webkit-sticky; position: sticky; /*吸頂時的定位*/ top: 0; left: 0; /*z比下方所有z高*/ z-index: 9999; } .content { height: 1500px; } .fixed-top { position: fixed; width: 100%; left: 0; top: 0; } </style> </head> <body> <div class="banner">Banner圖</div> <div class="nav">吸頂元素</div> <div class="content">很長的內容</div> <script src="https://cdn.bootcss.com/zepto/1.0rc1/zepto.min.js"></script> <script> var stickyEl = document.querySelector('.nav'); function fixed(num) { var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); if(isAndroid) { document.body.onscroll = function(e) { var scrollT = document.body.scrollTop; if (scrollT > num) { $(stickyEl).addClass('fixed-top'); }else { $(stickyEl).removeClass('fixed-top'); } }; }else if(isiOS) { $(stickyEl).addClass('sticky'); console.log(11); } } fixed(200); </script> </body>
相關推薦
移動端開發——吸頂效果的解決方案
一、前言 吸頂效果是web開發中一種常見的互動方式,常見的應用場景有導航、搜尋框等等。(圖片來自其他部落格,感謝博主) 二、在移動端開發遇到的問題 吸頂效果的基本的開發思路,利用scroll事件進行監聽scrollTop的值,當scrollTop達到一定的值得時候設
移動端圖片壓縮上傳解決方案
長度 繪制圖片 slice ase 但是 choose 100萬 lis 計算 最近做移動端圖片上傳,發現圖片尤其是iPhone拍照的圖片都有2M左右,但是實際上項目中用不到這麽大,於是想到要用js在前臺進行壓縮。 解決方案如下: 【一】獲取圖片數據 先是獲取圖片數據
轉 :2016HTML5移動端最新兼容問題解決方案;
並不是 按鈕 關鍵字 initial button 手機開發 div off spin 1、安卓瀏覽器看背景圖片,有些設備會模糊。用同等比例的圖片在PC機上很清楚,但是手機上很模糊,原因是什麽呢?經過研究,是devicePixelRatio作怪,因為手機分辨率太小,如果按照
移動端兼容性問題解決方案
取消 單擊事件 normal 過程 歷史 利用 資深 play 字母 1. IOS移動端click事件300ms的延遲響應 移動設備上的web網頁是有300ms延遲的,玩玩會造成按鈕點擊延遲甚至是點擊失效。這是由於區分單擊事件和雙擊屏幕縮放的歷史原因造成的, 200
HTML5移動端最新兼容問題解決方案
otl call area cat dev doctype 橫屏 ont black 1、安卓瀏覽器看背景圖片,有些設備會模糊。用同等比例的圖片在PC機上很清楚,但是手機上很模糊,原因是什麽呢?經過研究,是devicePixelRatio作怪,因為手機分辨率太小,如果按照分
javascript移動端禁止頁面滑動的解決方案
lse ipad str oid 發現 hid 滾動條 touch roi 1 前言 移動端網頁,發現ios平臺的iphone或者ipad,網頁可以上下左右移動,而Android版則不會。僅作為記錄使用。 2 代碼 var mo=function(e){e.prevent
移動端border 1px 問題完美解決方案
我是用sass寫的,用其他的前處理器寫法大同小異,新建mixin.scss檔案: /*單條border樣式*/ @mixin border-1px ($color, $direction) {
移動端字型小於12px的解決方案
1.移動端的字型大小最小為12px。兩種解決方案:第一種,使用transform: scale(0.7);css的屬性,可以縮放大小。第二種,使用display:table; display: tabl
移動端H5頁面生成圖片解決方案
現在有很多微信公眾號運營活動,都有生成圖片的需求,生成圖片後可以傳送給好友和發到朋友圈擴散,利於產品的宣傳! 1. 生成圖片可以用canvas,但是由於已經有了html2canvas這個開源庫,所以為了節省時間就沒有自己寫了 少囉嗦,先看東西!!! /
移動端響應佈局的LESS解決方案
在移動端佈局的時候,因為不同機型有著不一樣的螢幕寬度,是故我們經常對頁面做出不同的佈局,有時候,有些機型的差距不大,所以我們沒有必要進行多次的重複勞動,所以我們使用響應式佈局。下面是我的一種解決文案,可以讓同一個設計稿在多個不同的環境達到相同的效果。 /
移動端開發經常遇見的問題以及解決方案
誤差 cli 輸入關鍵詞 水平居中 arch asi 服務器 color del 1.移動端左右滑動右側有留白 出現這種問題的話查看一下自己的css中有沒有用到position:relative或者position:absolute,我做頁面的時候經常遇到這個問題,百分之
移動端video標簽默認置頂的解決方案
bili 微信 今天 資料 打開 樣式 hidden tran explore 概述 在移動端上面,比如說微信上面打開一個頁面,如果有video標簽的話,常常會出現video標簽默認置頂的情況,一般的解決方案是在不需要看見它的時候給它加一個display:none進行隱藏。
移動端開發常見問題解決方案彙總- Javascript技巧(一)
1、安卓瀏覽器看背景圖片,有些裝置會模糊。 用同等比例的圖片在PC機上很清楚,但是手機上很模糊,原因是什麼呢? 經過研究,是devicePixelRatio作怪,因為手機解析度太小,如果按照解析度來顯示網頁,這樣字會非常小,所以蘋果當初就把iPhone 4的960640解析
移動端開發H5頁面點選按鈕後出現閃爍或黑色背景的解決辦法
-webkit-tap-highlight-color:transparent; *{-webkit-tap-highlight-color:transparent; } H5頁面在IOS端測試的時候
js 實現在移動端開發,解決不同手機畫素大小的相容問題
Js 實現在移動開發網頁時,根據手機畫素不同,自動改變相對,字型的大小。 例項程式碼中以750畫素為參考,如果在350畫素手機上顯示該內容,相對字型大小為1px=0.01rem (funct
移動端開發底部元素margin-bottom失效解決辦法
一、情景 最近開發一個內嵌app的頁面時,發現頁面底部元素margin-bottom在ios下失效,在安卓內正常...... 1.safari瀏覽器內頁面底部元素設定margin-bottom失效;
Vue開發——實現吸頂效果
因為專案需求,最近開始轉到微信公眾號開發,接觸到了Vue框架,這個效果的實現雖說是基於Vue框架下實現的,但是同樣也可以借鑑到其他
iOS 蘋果開發證書失效的解決方案(Failed to locate or generate matching signing assets)
attempted can app 根證書 原因 ... emp ati dev 從2月14日開始,上傳程序的同學可能會遇到提示上傳失敗的提示. 並且打開自己的鑰匙串,發現所有的證書全部都顯示此證書簽發者無效. 出現以下情況: Failed to locate or gen
移動端開發用touch事件還是click事件
device 問題 桌面網站 有意義 用戶 雨後春筍 phone 平臺 系統 前端開發現在包含了跨瀏覽器,跨平臺(不同操作系統)和跨設備(不同尺寸的設備)開發。 在移動開發的過程中,到底選取touch事件還是click事件?對了,請不要鄙視click,click在移動端開發
關於移動端開發時iOS上滑屏卡頓的問題,以及電話類數字的樣式失控問題
img 頁面 通話 tips rem span cti 解法 並不是 寫在前面的話: tips:寫移動的時候,那些頭部需要固定顯示在顯示屏頂部的,通常在PC端我會用fixed來寫。但是,在移動端,這並不是一個好方法,因為彈出輸入小鍵盤的時候,會造成fixed 的元素偏移