css3 background-position手机端自适应

css3 background-position手机端自适应

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <title>
        Document
    </title>
    <style>
    .wrap {
        width: 1.28rem;
        height: 1.28rem;
        background: url(http://sandbox.runjs.cn/uploads/rs/155/azqeh6bj/w.png) no-repeat;
        background-size: 2.56rem 2.56rem;
        background-position: 0rem -1.3rem;
    }
    </style>
</head>

<body>
    <div class="wrap">
    </div>
    <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.js"></script>
    <script>
    (function(doc, win) {
        var docEl = doc.documentElement,
            resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
            /*如果屏幕尺寸发生了变化就会立即更新*/
            recalc = function() {
                /*     var clientWidth = docEl.clientWidth;*/
                var clientWidth = parseInt($('body').width());
                if (!clientWidth) return;
                docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';
                /*部分安卓手机计算rem有误差 如果有误差 需要重新设置font-size 从而计算出正确的值*/
                var div = document.createElement('div');
                div.style.width = '1.4rem';
                div.style.height = '0';
                document.body.appendChild(div);
                var ideal = 1.4 * 20 * (clientWidth / 320);
                var rem = div.clientWidth;
                var scale = rem / ideal;
                /*因为css获取属性值只保留整数 */
                if (scale > 1.05 || scale < 0.95) {
                    docEl.style.fontSize = 20 * (clientWidth / 320) / scale + 'px';
                    document.body.removeChild(div);
                }
            };
        if (!doc.addEventListener) return;
        /*如果窗口改变了大小 手机旋转了都会重新修改font-size属性*/
        win.addEventListener(resizeEvt, recalc, false);
        doc.addEventListener('DOMContentLoaded', recalc, false);
    })(document, window);
    </script>
</body>

</html>

ps:先改background-size 确定好大小

原创文章如转载,请注明本文链接: http://newmiracle.cn/?p=2579

发表评论

电子邮件地址不会被公开。 必填项已用*标注