<style>
        .box {
            width: 800px;
            margin: 100px auto;
        }

        .box li {
            float: left;
            width: 24px;
            height: 24px;
            background-color: pink;
            margin: 15px;
            background: url("屏幕截图(19).png");
        }
    </style>
<div class="box">
    <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>
</div>
<script>
    var lis = document.querySelectorAll('li');
    for (var i = 0; i < lis.length; i++) {
        var x_index = i * 24;
        var y_index = i * 24;//需要根据精灵图来选取合适的计算方式,一般情况下都死等差数列
        //0是横向坐标,-index是纵向坐标,即根据同意图片不同位置的部分显示不同的内容
        lis[i].style.backgroundPosition = x_index+'px -' + y_index + 'px';
        console.log(x_index,y_index);
    }
</script>

原图片:

js如何处理精灵图_等差数列

计算后:

js如何处理精灵图_屏幕截图_02