• background-attachment: fixed 在iphone设备失效的解决


    下面为引用,源代码有点问题,自己修改了一下。先做记录,回头再细修。

    引用部分,但代码有问题

    http://www.ptbird.cn/css-background-attachment--fiexed-no-work.html

    一、问题

    一个网站中使用了 background-attachment:fixed; 来控制背景图不随内容的滚动而滚动,使其固定大小。

    我的背景图是作用在 body 上的。

    在PC端可以起作用和一些安卓的机器上能够起作用,但是在iphone上没有效果。

    二、原因

    网上看了很多,都只说怎么解决,解决方法也有好用和不好用的,但是没有人解释为什么。

    在 stackoverflow 上查找的时候发现的原因如下:

    Fixed-backgrounds have huge repaint cost and decimate scrolling performance, which is, I believe, why it was disabled.

    固定背景导致重绘的成本很高,并且滚动表现也不尽人意,所以在一些移动端是被禁止的。

    三、解决

    移动无法直接应用 background-attachment ,可以曲线救国。

    有的推荐使用 javascript 去计算固定位置的,不过我采用的是 css 直接来控制,通过 :before 来控制:

    body{
        background-image: url(../img/wxfwh_bg_body.jpg);
        background-repeat: no-repeat;
        background-size:cover;
        -webkit-background-size: cover !important; 
        -moz-background-size: cover !important; 
        -o-background-size: cover; 
        background-attachment:fixed;
        z-index: -1;
    }
    body:before{
        content: "";
        position: fixed;
        z-index: -1;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        background-image: inherit;
        -webkit-background-size: cover!important;
        -o-background-size: cover;
        background-size: cover!important;
    }
     
     

    这个回答的地址如下:

    stackoverflow 的回答中使用的 height 的单位是 vh,相对于窗口的单位,100vh 自然是整个窗口,不过我因为作用在 body 上,所以用的是 height:100%

    原理:

    1. 使用 background-position:-9999px,-9999px 来隐藏原来的body的背景图

    2. 使用 :before 在body之前添加内容

    3. 实际上 :before 添加的内容中 background-image:inhert使用的是body的背景图,并且使用 fixed 定位,宽高为100%.

    4. 将 :before 的z-index 设置为 -1 ,置于其他内容之下,这样子,会显示body:before的背景,body的背景实际上是不显示的。

    n-1.jpg

    可以在新标签中打开图片查看详细内容

  • 相关阅读:
    图片api
    基于NoneBot的天气查询插件
    在Linux云服务上运行酷Q机器人并DIY自己的功能
    破解zip密码的几种方法
    攻防世界wp--crypto 幂数加密
    攻防世界wp--crypto Caesar
    攻防世界wp--web command_execution
    攻防世界wp--web weak_auth
    python中yield的用法以及和yield from的区别
    Linux进阶之正则,shell三剑客(grep,awk,sed),cut,sort,uniq
  • 原文地址:https://www.cnblogs.com/ichenchao/p/10592108.html
Copyright © 2020-2023  润新知