2
在iPad Safari上打開以下HTML。在iframe中向下滾動。選擇導致CSS更改的男性或女性單選按鈕。注意iframe滾動回頂端。我正在處理的應用程序中遇到同樣的問題,並且此問題只發生在iPad上(Android和桌面瀏覽器沒有此問題)。在CSS更改後,IPad iframe滾動到頂部
<!DOCTYPE html>
<html>
<head>
<title>iframe test</title>
<style>
body {
margin: 0;
padding: 20px;
}
div.iframe-container {
width: 850px;
height: 400px;
overflow: hidden;
-webkit-overflow-scrolling: touch;
border: 1px solid #cecece;
}
</style>
<script src='//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'></script>
</head>
<body>
<form>
<input id="genderMale" type="radio" name="gender" value="male" onchange="onRadioSelect();"/>
<label for="genderMale">Male</label>
<input id="genderFemale" type="radio" name="gender" value="female" onchange="onRadioSelect();"/>
<label for="genderFemale">Female</label>
</form>
<br/>
<div class="iframe-container">
<iframe src="http://www.engadget.com" height="100%" width="100%" frameBorder="0"></iframe>
</div>
</body>
</html>
<script type="text/javascript">
if((navigator.userAgent.match(/iPad/i) != null) || (navigator.userAgent.match(/iPhone/i) != null)) {
$(".iframe-container").css("overflow", "auto");
}
function onRadioSelect(event) {
switch($("input:checked").val()) {
case "male":
$("body").css("border", "2px solid #ff0000");
break;
case "female":
$("body").css("border", "2px solid #0000ff");
break;
}
setTimeout(function() {
$("body").css("border-style", "none");
}, 250);
}
</script>
任何想法如何防止這種情況發生?我希望滾動位置保持不變,因爲其他事情發生在我的父頁面中。