移动端吸顶(iOS与安卓)

Posted Daisylcj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移动端吸顶(iOS与安卓)相关的知识,希望对你有一定的参考价值。

有的时候经常会遇到移动端吸顶效果,开始我也只是上网查了一下,分别有iosandroid两种样式,如下:

/*!*Android*!*/

.head {

    position: fixed;

    top: 0;

    left: 0;

    z-index: 5;

}

/*!*iOS*!*/

.head{

      position: -webkit-sticky;

      position: sticky;

      top: 0;

      left: 0;

      z-index: 5;

  }

设置之后你会发现只有ios手机的吸顶效果OK了,android手机完全不好使,这是因为样式覆盖了,ios的样式在下边,权重相同,自然把android的样式覆盖了。那么如何解决呢?

我是先获取手机的系统类型,再根据不同类型来添加不同类名,达到效果一致的目的!具体代码如下:

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">

    <title>Title</title>

    <style>

  .head{

      width:7.5rem;

      height:1rem;

      line-height: 1rem;

      text-align: center;

      /*position: fixed;*/

      background: #fff;

      z-index: 1001;

  }

  /*!*Android*!*/

  .headAndr {

      position: fixed;

      top: 0;

      left: 0;

      z-index: 5;

  }

 

  /*!*iOS*!*/

  .headIos{

        position: -webkit-sticky;

        position: sticky;

        top: 0;

        left: 0;

        z-index: 5;

    }

 

  .headhead{

      width:7.5rem;

      height:1rem;

      position: relative;

  }

 </style>

</head>

<body>

        <div class="head">  //这是头部

            <i class="coordinate"></i>

            <span>北京</span>

            <i class="logo"></i>

            <i class="_user"></i>

            <em class="wode"></em>

        </div>

        <div class="headhead"></div> //安卓机吸顶是需要有一部分内容填充到原来位置来实现的(headhead是与head一致大小的一个元素)

   <div class="con">中间内容区</div>

//js部分!!!!!!!!!!1

<script src="js/Zepto.min.js"></script> //要引入移动端的类库

<script>

    document.querySelector("html").style.fontSize = document.documentElement.clientWidth/375*50+"px"; //自己设定的移动端的1rem = 50px;

    var u = navigator.userAgent; //获取显示器的信息

    var isAndroid = u.indexOf(‘Android‘) > -1 || u.indexOf(‘Adr‘) > -1; //android终端

    var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端

    if(isiOS == true){  //苹果机,headhead隐藏,加类名headiOS

        console.log(1);

        $(".headhead").hide(); 

        $(".head").addClass("headIos");

    }else{ //安卓机,加类名headAndr

        console.log(0);

        $(".head").addClass("headAndr");

    }

</body> 

</html>

这样就解决啦,切记此代码复制粘贴的时候注释要用正确的格式、

以上是关于移动端吸顶(iOS与安卓)的主要内容,如果未能解决你的问题,请参考以下文章

如何兼容移动端(安卓和IOS)情况2-移动端开发注意事项

安卓ios端移动端银行卡识别

js 设备判断(移动端pc端 安卓ios 微信)

移动端使用rem同时适应安卓ios手机原理解析,移动端响应式开发

大前端使用html/css/javascript开发移动端(安卓,IOS)与桌面端(Win,mac,Linux)应用程序

大前端使用html/css/javascript开发移动端(安卓,IOS)与桌面端(Win,mac,Linux)应用程序