如何解决ios滑动 不支持position fixed

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决ios滑动 不支持position fixed相关的知识,希望对你有一定的参考价值。

如何解决:
查阅资料之后想到一下几种解决方法

1,使用position:absolute模拟

<script type="text/javascript">
window.onscroll=function()
$(".fixed").css("top",$(window).scrollTop());
$(".foot").css("top",$(window).scrollTop()+$(window).height());

</script>

问题来了:滑动页面时头部底部div会有明显的抖动。

2,判断当前获得焦点元素是input则隐藏div改为position:absolute

<body onload=setInterval("a()",500)>

<script type="text/javascript">
function a()
if(document.activeElement.tagName == 'INPUT')
$(".fixed").css('position': 'absolute','top':'0');
else
$(".fixed").css('position', 'fixed');


</script>

问题来了:不停监控dom,消耗资源。如果input个数较少,可在input里面添加onfocus事件好一些。但是如果是底部固定div此方法好像不太给力。

3,插件iscroll.js个人感觉不是很好用。可能方法不对,jQuery
Mobile 没尝试,感觉会增负担。

4,重点来了:

只需要在中间部分外层div添加css样式position:fixed;top:50px; bottom:50px;overflow:scroll;就可以实现效果,无需插件。可拷贝下面代码运行。

<!DOCTYPE html>
<html lang="zh_cmn">
<head>
<meta charset=utf-8 />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0" />
<title></title>
<style>
.head,.footposition:fixed;left:0;height:38px;line-height:38px;width:100%;background-color:#99CC00;
.headtop:0;
.footbottom:0;
.mainposition:fixed;top:38px;bottom:38px;width:100%;overflow:scroll;background-color:#BABABA;
</style>
</head>
<body>
<header class="head">顶部固定区域</header>
<article class="main" id="wrapper">
<div>

资料由:成都点点通软件开发公司提供!
参考技术A 首先,现在的浏览器基本都支持position:fixed,不会不支持的,除非是ie6或之前的,你最好检查一下css是不是有其他问题,还有建议用iscroll,手机端开发非常有用本回答被提问者采纳

ios下position:fixed失效的问题解决

技术图片

如图,考虑到用户体验的问题,一般页面的下方提交按钮都会随着固定在页面上,方便用户点击。

有些人肯定就说了,这还不简单,position:fixed;

但是在ios这个坑货系统上这个position:fixed这个css属性就会失效,你懂的,苹果就是搞特殊,下面我就用css来解决这个问题。

1.这个是要滑动的内容的css:

.page-content {
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    box-sizing: border-box;
    height: 100%;
    position: relative;
    z-index: 1;
}

  暂且我就将它的内容区域命名page-content,即html内容为

<div class="page-content">这个是可以滑动的内容区域</div>

2.这个是固定在页面上的区域:

<div class="scroll-page">这个是按钮</div>

  

.scroll-page{
	position: fixed;
	bottom: 0;
	width: 100%;
	height: 50px;
	background: #f8105c;
	color: white;
	text-align: center;
	line-height: 50px;
	font-size: 18px;
	z-index: 99;
}

这样的话可以完美解决这个fixed在ios上失效的问题。亲测有效!!!!!!网上搜的其它方法,大都有这样那样的问题

以上是关于如何解决ios滑动 不支持position fixed的主要内容,如果未能解决你的问题,请参考以下文章

position fixed 在ios上滑动不固定问题

ios下position:fixed失效的问题解决

解决ios微信移动端的position: fixed; 支持性不好的问题 && 禁用下拉暴露黑底的功能

解决IE6不支持position:fixed属性

ios移动端部分手机不支持background-attachment: fixed 的解决办法

IE6下position:fixed不支持问题及其解决方式