移動端吸頂(iOS與安卓)


有的時候經常會遇到移動端吸頂效果,開始我也只是上網查了一下,分別有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>

這樣就解決啦,切記此代碼復制粘貼的時候注釋要用正確的格式、


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM