關(guān)于在移動(dòng)端 body overflow:hidden 無效的問題

關(guān)于在移動(dòng)端 body overflow:hidden 無效的問題


一、簡述

這篇文章作為一道前菜哈。

很多同學(xué)在做移動(dòng)端的時(shí)候都有遇到移動(dòng)端各種坑,各種固定fiexd失效盏浇,input輸入框錯(cuò)位,軟鍵盤彈出錯(cuò)位等等….但是芽狗,在做一張單頁面的頁面時(shí)绢掰,尤其是以整個(gè)頁面去加載背景圖片的時(shí)候,背景圖片固定就很有必要了童擎。

這里先討論一下body關(guān)于overflow的問題滴劲,移動(dòng)端固定的問題會(huì)在下一篇文章討論。

二顾复、簡單演示

很多時(shí)候都是想著使用body去固定:

? ? body{

? ? ? ? ? ? ? ? position:fixed; //這個(gè)屬性暫時(shí)不提班挖,重點(diǎn)看overflow

? ? ? ? ? ? ? ? overflow:hidden;

? ? }

1、這樣的效果在「PC端」是可以的芯砸,整個(gè)頁面時(shí)被固定的:

em….感覺說的好空萧芙,有句話說得好「talk is easy ,show me the code」 ,上個(gè)demo :


em…上完code假丧,再來「PC端」的效果演示:


OK双揪,上面GIF演示的效果已經(jīng)告訴我們,body的overflow:hidden在「PC端」是有效果的包帚。

em..接下來是重點(diǎn)好吧渔期,說說在移動(dòng)端的body 如何不行?

2渴邦、同樣的樣式在「移動(dòng)端」是可以滑動(dòng)的疯趟,可以滑動(dòng)就是不合理了。

如何看手機(jī)的上樣式效果對(duì)不對(duì)几莽,我這里稍微講2種方式哈:

A.說用「微信開發(fā)者工具」的同學(xué)迅办,我這里就不講了,這也是一種方法可以查看移動(dòng)端的樣式效果章蚣,尤其是要用在微信網(wǎng)頁中的,是一個(gè)不錯(cuò)的推薦。B.說用模擬器的同學(xué)纤垂,我也不想說太多了矾策,查看一個(gè)簡單的樣式,難道要全開安卓和iOS 模擬器峭沦?)

2.1贾虽、放到服務(wù)器上

這樣,我把網(wǎng)頁放到了我個(gè)人的服務(wù)器上吼鱼,比較簡單粗暴的做法蓬豁,很通用哈,一輸網(wǎng)址就可以看到了菇肃,下面是把網(wǎng)頁放到手機(jī)之后的效果:



看到上面效果地粪,what!K霭蟆技!body的hidden:overflow確實(shí)在「移動(dòng)端」真是無效的,很明顯的是可以滑動(dòng)..

這時(shí)IOS手機(jī)上的效果斗忌,在安卓手機(jī)上同樣也是一樣的效果质礼,這里我就不錄屏了,有點(diǎn)累呀

細(xì)心的同學(xué)可以發(fā)現(xiàn)我手機(jī)上的網(wǎng)頁會(huì)出現(xiàn)藍(lán)色织阳,橙色的遮罩眶蕉,em...get 到我這個(gè)點(diǎn)了,上面演示的是第二種方法里的一些調(diào)試唧躲。

2.2使用遠(yuǎn)程web調(diào)試工具-----weinre

?注意造挽!注意!注意惊窖!使用的是weinre這款遠(yuǎn)程調(diào)試工具刽宪,重要的事情講一遍。

上面說的就是可以使用這個(gè)款遠(yuǎn)程web頁面調(diào)試工具界酒,一款稍顯老的工具圣拄,不過好在可以跨平臺(tái)全終端使用,可以無線查看和調(diào)試dom和css樣式毁欣,但是不可以修改dom,不可以斷點(diǎn)調(diào)試…em…缺點(diǎn)比較多庇谆,但是用來查看這個(gè)demo是妥妥的。

? ? ? 有興趣的同學(xué)可以找一下weinre的使用方法凭疮。(或者空閑的時(shí)候?qū)懸幌率褂脀einre的基本教程和心得)

原理就是需要在原網(wǎng)頁中插入一段js代碼饭耳,實(shí)現(xiàn)中間的target,用于傳輸調(diào)試請(qǐng)求执解,請(qǐng)保持在同一網(wǎng)絡(luò)上寞肖。

? 重點(diǎn)來了!重點(diǎn)來了!重點(diǎn)來了新蟆!

作用: 2.2.1觅赊、可以實(shí)現(xiàn)移動(dòng)端可以無線直接查看本地電腦編寫的網(wǎng)頁,而無需放置到服務(wù)器上琼稻。

? ? ? ? ? ? ? ? ? ? 2.2.2吮螺、可以實(shí)現(xiàn)在電腦直接對(duì)移動(dòng)端進(jìn)行dom和樣式調(diào)試,無線連接調(diào)試帕翻。

可以上個(gè)圖看一下效果鸠补;

第一種情況:就是我直接在weinre目錄中添加需要查看的文件,在手機(jī)上可以直接訪問電腦ip嘀掸,獲取本地編寫的網(wǎng)頁紫岩。

上個(gè)圖先:

~文件所在:


~手機(jī)訪問:



? ? ? ? 可以清晰的看到手機(jī)和電腦處于同一局域網(wǎng),手機(jī)正在訪問到電腦本地的網(wǎng)頁横殴。

? ? ? ? ? ? 第二種情況:我把網(wǎng)頁放到了我的服務(wù)器上被因,手機(jī)訪問可以直接查看,在電腦上也是可以對(duì)手機(jī)的樣式進(jìn)行調(diào)試的衫仑,如下圖:


? ? ? ? ? 這里是可以看到我通過網(wǎng)絡(luò)訪問進(jìn)行的梨与,并在瀏覽器出現(xiàn)類似于chrome dev調(diào)試工具的頁面,正在對(duì)手機(jī)樣式進(jìn)行調(diào)試文狱。

? ? ? ? ? ? 好吧綜上所述粥鞋,可以看到weinre是可以又這個(gè)能力對(duì)移動(dòng)端進(jìn)行樣式調(diào)試的,并且證明說overflow:hidden在移動(dòng)端確實(shí)是可以進(jìn)行無障礙的滑動(dòng)瞄崇。

? ? ? ? ? ??? 回到主題呻粹!回到主題!回到主題苏研!

三等浊、結(jié)論以及解決方法

? ? ? 事實(shí)證明了hidden在移動(dòng)端無效。原因總結(jié)來說是移動(dòng)端的坑摹蘑,對(duì)網(wǎng)頁兼容的問題筹燕;我覺得是移動(dòng)端網(wǎng)頁的html頁面本身也是可以「上下拉扯滑動(dòng)1」的,而body的position位置默認(rèn)是static衅鹿,不做修改的情況下是直接隨著html頁面「滑動(dòng)1」撒踪,而body可以直接在html內(nèi)實(shí)現(xiàn)「滑動(dòng)2」,(兩個(gè)滑動(dòng)是不一樣的滑動(dòng)大渤,「滑動(dòng)1」指的是整個(gè)html相對(duì)于瀏覽器窗口滑動(dòng)制妄,「滑動(dòng)2」指的是整個(gè)body相對(duì)于html頁面滑動(dòng))

下面是「滑動(dòng)1」的如圖:


「滑動(dòng)2」就是我們本身可以看到的那種效果。


? ? 解決方法:

? ? 通過父節(jié)點(diǎn)固定泵三,像body的父節(jié)點(diǎn)是html耕捞,可以通過固定父節(jié)點(diǎn)html衔掸, 來把其下的字節(jié)點(diǎn)固定,當(dāng)然字節(jié)點(diǎn)前提是不做脫離文檔流的行為砸脊。

? ? html{

? ? ? ? ? position:fixed;

? ? ? ? ? ? height:100%;

? ? ? ? ? ? width:100%;

? ? }

? 完整代碼如下:


這里劇個(gè)透具篇,有個(gè)細(xì)節(jié)的地方是:

比較多的同學(xué)會(huì)直接不添加父節(jié)點(diǎn)固定纬霞,而是直接把body給賦值position:fixed了凌埂;如下


直接這樣寫的,很明顯在手機(jī)端可以看到诗芜,body是固定的瞳抓,但是整個(gè)html頁面在滑動(dòng),這就達(dá)不到固定的預(yù)期的要求了伏恐。同時(shí)這樣子很容易會(huì)造成一種錯(cuò)覺孩哑,在接下來寫的元素中會(huì)讓人覺得是整個(gè)element在自己滑動(dòng),其實(shí)不是翠桦,是html頁面在滑動(dòng)横蜒。

嗯嗯,總結(jié)來說就是這樣子销凑。有關(guān)于移動(dòng)端的坑可以交流一下丛晌,我這里剛好有些鏈接,本人覺得是挺不錯(cuò)的各種移動(dòng)端的坑的總結(jié)斗幼。

放其中的一個(gè)鏈接:https://github.com/markyun/My-blog/issues/88

個(gè)人博客原文:http://wusiqing.com/?p=231

多點(diǎn)贊澎蛛,給點(diǎn)小動(dòng)力??!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蜕窿,一起剝皮案震驚了整個(gè)濱河市谋逻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌桐经,老刑警劉巖毁兆,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異阴挣,居然都是意外死亡气堕,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門屯吊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來送巡,“玉大人,你說我怎么就攤上這事盒卸∑” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵蔽介,是天一觀的道長摘投。 經(jīng)常有香客問我煮寡,道長,這世上最難降的妖魔是什么犀呼? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任幸撕,我火速辦了婚禮,結(jié)果婚禮上外臂,老公的妹妹穿的比我還像新娘坐儿。我一直安慰自己,他們只是感情好宋光,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布貌矿。 她就那樣靜靜地躺著,像睡著了一般罪佳。 火紅的嫁衣襯著肌膚如雪逛漫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天赘艳,我揣著相機(jī)與錄音酌毡,去河邊找鬼。 笑死蕾管,一個(gè)胖子當(dāng)著我的面吹牛枷踏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播娇掏,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼呕寝,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了婴梧?” 一聲冷哼從身側(cè)響起下梢,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎塞蹭,沒想到半個(gè)月后孽江,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡番电,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年岗屏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漱办。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡这刷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出娩井,到底是詐尸還是另有隱情暇屋,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布洞辣,位于F島的核電站咐刨,受9級(jí)特大地震影響昙衅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜定鸟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一而涉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧联予,春花似錦啼县、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至麦向,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間客叉,已是汗流浹背诵竭。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留兼搏,地道東北人卵慰。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像佛呻,于是被迫代替她去往敵國和親裳朋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容