問(wèn)題描述:
iframe設(shè)置了高度(例如500px)。倘若iframe的內(nèi)容足夠長(zhǎng)超出了iframe設(shè)定的高度時(shí),在ipad等設(shè)備上。iframe內(nèi)部html的滾動(dòng)條不出現(xiàn)。并且活生生的從500px處截?cái)啵?lèi)似overflow:hidden的效果)下面的內(nèi)容不再顯示。
問(wèn)題重現(xiàn):
結(jié)構(gòu):
index.html :
1
2
3
4
5
6
7
8
9
|
< style > #iframe{height:500px;} </ style > < div id = "content" > < iframe frameborder = "0" src = "iframe.html" id = "iframe" ></ iframe > </ div > |
iframe.html:
1
2
3
4
5
6
7
8
9
10
11
12
|
<!DOCTYPE html> < html lang = "zh-cn" > < head > < meta charset = "utf-8" /> </ head > < body >< div class = "container" > 我是一堆很長(zhǎng)。很長(zhǎng),很高,很高的內(nèi)容。 </ div > < script src = "../jquery.js" ></ script > </ body > </ html > |
問(wèn)題原因:
在IOS設(shè)備中,iframe內(nèi)部的html的滾動(dòng)條無(wú)法生效。
--------------------------------------------------------------------------------
解決辦法:
把iframe中body里的內(nèi)容全部包裹一層,然后設(shè)置包裹這一層的height,使用屬性-webkit-overflow-scrolling:touch;overflow:auto;
代碼如下:
iframe.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<!DOCTYPE html> < html lang = "zh-cn" > < head > < meta charset = "utf-8" /> < title >IOS frame 滾動(dòng)條 demo</ title > </ head > < body > < style > #wrapper{height:500px;-webkit-overflow-scrolling:touch;overflow:auto;} </ style > < div class = "container" > 我是一堆很長(zhǎng)。很長(zhǎng),很高,很高的內(nèi)容。 </ div > < script src = "../jquery.js" ></ script > < script > var UA = navigator.userAgent; var forIOS = function(){ if(!UA.match(/iPad/) && !UA.match(/iPhone/) && !UA.match(/iPod/)){return;} if($('#wrapper').length){return;} $('body').children().not('script').wrapAll('< div id = "wrapper" ></ div >'); }(); </ script > </ body > </ html > |
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。