webapp中fixed问题解决方案

主要问题:

1,头部输入框固定后,只要再滑动内容的话,输入框会随着滑动内容而滑动。

2,在低端机:2.3以下的安卓机,你会发现怎么解决都不行的,系统浏览器是不会支持的,头部底部固定的话会滑动内容而滑动。

flex模拟fixed(推荐使用)

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>flex模拟fixed</title>
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <style>
        html,body{
  height:100%;
  margin:0;
  padding:0;
}/**/
.wrap{height:100%;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-flex:1;display:flex;display:-webkit-flex;flex-direction:column;flex:1;-webkit-flex:1;}
.content{display:-webkit-box;-webkit-box-flex:1;flex:1;-webkit-flex:1;display:flex;display:-webkit-flex;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:5px 5px 60px 5px;}

header,footer{position:fixed;z-index:1;left:0;right:0;
  height:40px;
  text-align:center;
  width:100%;
  line-height:40px;
  background:#fff;
}
header{
  border-bottom:1px solid #ccc;
}
footer{
  border-top:1px solid #ccc;
  bottom:0;
}
h1{margin:0; }

    </style>
  </head>
  <body>
 <div class="wrap">
      <header class="">
        <h1 class=""><input type="text"/></h1>
      </header>

     <div class="content">
        <div class="">
          <h2>content</h2>
          <h2>content</h2>
          <h2>content</h2>
          <h2>content</h2>
          <h2>content</h2>
          <h2>content</h2>
          <h2>content</h2>
          <h2>content</h2>
          <h2>content</h2>
          <h2>content</h2>
          <h2><input type="text"/></h2>
          <h2>content</h2>
          <h2>content</h2>
          <h2>content</h2>
          <h2>content</h2>
          <h2>content</h2>
          <h2>content</h2>
          <h2>content</h2>
          <h2>content</h2>
          <h2>content</h2>
          <h2>content</h2>
          <h2>content</h2>
          <h2>content</h2>
          <h2>content-last</h2>
        </div>

      </div>
      <footer class="">
        <input type="text"/>
      </footer>
    </div>

  </body>
</html>

absolute模拟fixed

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>absolute模拟fixed</title>

    <!-- Sets initial viewport load and disables zooming  -->
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui">

    <!-- Makes your prototype chrome-less once bookmarked to your phone‘s home screen -->
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <style>
        html,
body{height:100%;margin:0;padding:0;}
header,footer{height:40px; text-align:center; position:absolute; width:100%; line-height:40px; background:#fff; z-index:2;}
header{border-bottom:1px solid #ccc;top:0;}
footer{border-top:1px solid #ccc;bottom:0;}
h1{margin:0; }
.content{position:absolute;top:40px;left:0;right:0;bottom:40px; box-sizing:border-box;overflow-y:auto;-webkit-overflow-scrolling:touch;}
    </style>
  </head>
  <body>

    <!-- Make sure all your bars are the first things in your <body> -->
    <header class="bar bar-nav">
      <h1 class="title"><input type="text"/></h1>
    </header>

    <!-- Wrap all non-bar HTML in the .content div (this is actually what scrolls) -->
    <div class="content">
      <h2>content</h2>
      <h2>content</h2>
      <h2>content</h2>
      <h2>content</h2>
      <h2>content</h2>
      <h2>content</h2>
      <h2>content</h2>
      <h2>content</h2>
      <h2>content</h2>
      <h2>content</h2>
      <h2><input type="text"/></h2>
      <h2>content</h2>
      <h2>content</h2>
      <h2>content</h2>
      <h2>content</h2>
      <h2>content</h2>
      <h2>content</h2>
      <h2>content</h2>
      <h2>content</h2>
      <h2>content</h2>
      <h2>content</h2>
      <h2>content</h2>
      <h2>content</h2>
      <h2>content-last</h2>
    </div>
    <footer class="bar bar-footer">
      <input type="text"/>
    </footer>
  </body>
</html>

目前还会存在的一些问题,页面第一次点击底部输入法是会挡住输入框的,这个情况我测试IOS8系统的时候会出现,小米1S安卓4.0系统没这个问题。

其实可以把底部高度稍微调高点就行;或是点击输入框的时候来一次刷新就不会有这个问题了。

目前我能提供的也只是这个解决方案了,也适合做头部底部fixed固定。

时间: 2024-10-12 05:08:55

webapp中fixed问题解决方案的相关文章

动画在webapp中的现状

webapp的一大优势便是在view切换时候可以拥有媲美与native的动画效果,但是很多时候那只是一种想法,真正的情况却不是这样 产生此问题的原因有: ① 手机CPU烂! ② 手机显卡烂!就算四核其渲染也很有问题 ③ 高端手机浏览器会有BUG ④ 低端手机支持不好(国内山寨机笑而不语) 因为以上原因,事实上做webapp的都会不同程度的弱化动画,或者在局部区域使用动画 问题虽难,总有方案,事实上的情况是,几行代码搞死人,就我们的这个动画问题,前后过手几轮 最后又回到了我手上,中间甚至经手了国内

IE6浏览器不支持固定定位(position:fixed)解决方案

代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> New Document </title> </head> <body> <div style="width

TinyOS系列——服务器远程指令多跳实现过程中问题及解决方案

开发经验: 1.嵌入式程序,调试可能比较麻烦,一定要有耐心,戒骄戒躁 2.开发之前一定要理清自己的逻辑框架,不然只能越写越乱 3.代码开发与测试迭代进行,一步一步,如果代码量过大,很难跟踪找到问题出错的点 开发步骤: 模块开发必须理清自己的思路以及逻辑,学会分步进行: 1.测试节点C[i]是否能够正常接收.发送数据,全部需要测试一遍,确定节点能否正常使用,否则后续工作无法正常进行2.测试发送模块A向基站B广播消息后,基站B能否正常接收3.修改发送模块与节点程序,测试发送模块A->节点c[0]->

GDAL在java中乱码问题解决方案

[前序] 首先关于GDAL源码方面,GDAL开源项目源码是使用C++语言所写,通过源码的编译可以生成支持一系列语言如c++/java/php/csharp/perl/python/ruby开发所依赖的第三方包或头文件.GDAL的同时支持不同平台下的编译生成,在Win平台下使用起来出现的问题较多,比如编译时选择不同的编译选项32位或x64位产生出不同的依赖库,还有中文路径.中文读写问题等等. 在使用GDAL在java环境下进行读写数据文件时,遇到java语言读tab数据源出现乱码问题,具体的情况描

SQL Server 2008空间数据应用系列十一:提取MapInfo地图数据中的空间数据解决方案

原文:SQL Server 2008空间数据应用系列十一:提取MapInfo地图数据中的空间数据解决方案 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. 2.具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验. 3.熟悉或了解Microsoft SQL Server 2008中的空间数据类型. 4.具备相应(比如OGC规范.KML规范)的GIS专业理论知识. 5

[iOS]在WebApp中如何使用JS调用iOS的函数

实现功能:点击HTML的标签,通过JS调用iOS内部的原生函数 基本流程: 先看一下Web中,我们给h1标签添加一个onclick事件,让它在被点击之后,修改当前的url. Web中的HTML代码: <html> <head> <script> function getInfo(name) { window.location = "/getInfo/"+name; } </script> </head> <body>

JavaScript中fixed函数

JavaScript中fixed函数是把 HTML 标记放置在 String 对象中的文本两端. strVariable.fixed( ) 必选项 strVariable 参数为任意的 String 对象或文字. 下面的示例说明了 fixed 方法如何工作:http://www.mlybyby.com var strVariable = "This is a string object"; strVariable = strVariable.fixed( ); 最后一条语句执行完后,s

"只能在执行Render()的过程中调用RegisterForEventValidation" 解决方案

开发中遇到令人蛋疼的问题: 只能在执行Render()的过程中调用RegisterForEventValidation 当出现的异常的提示: 异常详细信息: System.InvalidOperationException:只能在执行Render()的过程中调用RegisterForEventValidation: 不要伤心,下面是解决办法: 出现这个异常,解决问题只需要在<%@ Page %> 指令中加上 EnableEventValidation="false" &qu

myeclipes使用过程中的错误解决方案

1.‘Building workspace’ has encountered a problem. Errors occurred during the build. 解决方案:这样的错误,主要是由于JavaScript Validator校验工程文件所导致, 解决方法是:Project → Properties → Builders → 把JavaScript Validator前的复选框里的勾去掉即可解决此问题. 2.给myeclipes配置外置tomcat 首先我们打开Myeclipse,