zoukankan      html  css  js  c++  java
  • 移动端吸顶(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{

          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{

          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>

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

  • 相关阅读:
    【计算机视觉】OpenCV篇(2)
    【计算机视觉】OpenCV篇(1)
    傅立叶分析与小波分析整理
    极简Python DeBug工具——PySnooper
    透过SourceTree再谈Git
    佳文赏析:How to uninstall Linux
    AI佳作解读系列(四)——数据增强篇
    AI佳作解读系列(三)——深度学习中的合成数据研究
    java基础 序列化反序列化流 实现Serializable 接口 自动装载序列号到对象文本文件如修改不能反序列化对象文本,除非自定义long型常量 打印流
    java基础IO流 复制键盘录入的目录,复制其中的.java文件到指定目录,指定目录中有重名,则改名 对加密文件计算字母个数
  • 原文地址:https://www.cnblogs.com/lichunjing/p/7059865.html
Copyright © 2011-2022 走看看