大背景图片的处理(JS)

今天来跟大家分享一个JS处理大背景图的方法:

(PS:这个方法是为了解决在不同分辨率的电脑上根据视口大小对大背景图片的处理!)

这是HTML部分:

<style>
    *{
        margin: 0;
        padding: 0;
    }
    html,body,.container{
        width: 100%;
    }
    .banner{
        height: 40px;
        width: 100%;
        background: url("img/bg_banner.png") no-repeat;
    }
    .head{
        height: 400px;
        width: 100%;
        background: url("img/bg_head.png") no-repeat;
    }
</style>

<div class="container">
    <div class="banner"></div>
    <div class="head"></div>
</div>

下边是JS部分:

<script>
        //获取视口宽度
        var viewportWidth = document.documentElement.clientWidth;
        //设计图最大宽度
        var designWidth = 1920;
        //向左侧移动的距离
        var offsetLeft = (designWidth - viewportWidth)/2;
        //通过querySelector()方法 来提取相应的图片div
        var head_img = document.querySelector(".head");
        var banner = document.querySelector(".banner");
        //设置图片的偏移量
        head_img.style.backgroundPositionX=-offsetLeft + "px";
        banner.style.backgroundPositionX=-offsetLeft + "px";

        //window.onresize() 是当视口调整时执行的方法
        window.onresize = function(){
            var viewportWidth = document.documentElement.clientWidth;
            MoveTo(viewportWidth,1920,head_img,500);
            MoveTo(viewportWidth,1920,banner,500);

        }

        //封装函数MoveTo
        function MoveTo(viewportWidth,designWidth,head_img,minWidth){

            if(viewportWidth<minWidth){
                return;
            }
            var offsetLeft = (designWidth - viewportWidth)/2;
            head_img.style.backgroundPositionX=-offsetLeft + "px";
        }
    </script>
在JS最底部进行了函数封装,在下次调用时直接输入参数即可。

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值