IOS上iframe的滚动条失效的解决办法

2025-05-29 0 115

问题描述:

iframe设置了高度(例如500px)。倘若iframe的内容足够长超出了iframe设定的高度时,在ipad等设备上。iframe内部html的滚动条不出现。并且活生生的从500px处截断,(类似overflow:hidden的效果)下面的内容不再显示。

问题重现:

结构:

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" />

<title>IOS frame 滚动条 demo</title>

</head>

<body><div class="container">

我是一堆很长。很长,很高,很高的内容。

</div>

<script src="../jquery.js"></script>

</body>

</html>

问题原因:

在IOS设备中,iframe内部的html的滚动条无法生效。

——————————————————————————–

解决办法:

iframe中body里的内容全部包裹一层,然后设置包裹这一层的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 滚动条 demo</title>

</head>

<body>

<style>

#wrapper{height:500px;-webkit-overflow-scrolling:touch;overflow:auto;}

</style>

<div class="container">

我是一堆很长。很长,很高,很高的内容。

</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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 IOS上iframe的滚动条失效的解决办法 https://www.kuaiidc.com/92373.html

相关文章

发表评论
暂无评论