欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

分享一个JS处理大背景图的方法

程序员文章站 2022-03-12 09:34:56
今天来跟大家分享一个js处理大背景图的方法: (ps:这个方法是为了解决在不同分辨率的电脑上根据视口大小对大背景图片的处理!) 这是html部分:

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

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

这是html部分:

<span style="font-size:12px;"><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>  
  
<p class="container">  
    <p class="banner"></p>  
    <p class="head"></p>  
</p></span>  

下边是js部分:

<script>  
        //获取视口宽度  
        var viewportwidth = document.documentelement.clientwidth;  
        //设计图最大宽度  
        var designwidth = 1920;  
        //向左侧移动的距离  
        var offsetleft = (designwidth - viewportwidth)/2;  
        //通过queryselector()方法 来提取相应的图片p  
        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最底部进行了函数封装,在下次调用时直接输入参数即可。