码迷,mamicode.com
首页 > 移动开发 > 详细

移动端吸顶(iOS与安卓)

时间:2017-06-21 16:00:54      阅读:429      评论:0      收藏:0      [点我收藏+]

标签:maximum   手机   utf-8   nts   min   htm   系统   显示器   rip   

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

/*!*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与安卓)

标签:maximum   手机   utf-8   nts   min   htm   系统   显示器   rip   

原文地址:http://www.cnblogs.com/lichunjing/p/7059865.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!