gulp自动生成精灵图

   日期:2020-10-17     浏览:96    评论:0    
核心提示:gulp自定生成精灵图gulp 是基于 Node.js 的一个前端自动化构建工具,主要用来设定程序自动处理静态资源的工作,您可以使用它构建自动化工作流程(前端集成开发环境)精灵图(sprite)是一种图片整合技术,将大量的小图片合成到一张图片上,然后使用 css 的 background-image 和 background-position 属性来定位显示图片,从而减少服务器接收和发送请求的次数,提高页面的加载速度gulp 中可以使用 gulp.spritesmith 插件完成小图片合成精灵图,并自

gulp自动生成精灵图

gulp 是基于 Node.js 的一个前端自动化构建工具,主要用来设定程序自动处理静态资源的工作,您可以使用它构建自动化工作流程(前端集成开发环境)
精灵图(sprite)是一种图片整合技术,将大量的小图片合成到一张图片上,然后使用 css 的 background-image 和 background-position 属性来定位显示相应的小图片,从而减少服务器接收和发送请求的次数,提高页面的加载速度
gulp 中可以使用 gulp.spritesmith 插件完成小图片合成精灵图,并自动输出css样式文件

使用 gulp.spritesmith 插件生成精灵图

首先确保你已经正确安装了nodejs环境,然后以全局方式安装gulp环境

npm install -g gulp

然后切换到你的项目文件夹中,为项目单独安装gulp开发依赖

npm install gulp --save-dev

安装 gulp.spritesmith 插件

npm install gulp.spritesmith

在项目目录下创建gulp的配置文件gulpfile.js

gulpfile.js:
//引入gulp
const gulp = require("gulp")
//引入gulp.spritesmith
const spritesmith = require("gulp.spritesmith")
//注册sprite任务 
gulp.task("sprite", function(){ 
    return gulp.src("images/*.png") //读取文件路径
        .pipe(spritesmith({ 
            imgName: "sprite.png", //合并精灵图的名称
            cssName: "sprite.css", //生成css样式文件的名称
            padding: 2, //精灵图中每个小图片之间的间距,默认为0px
            //生成的css样式文件模板信息
            cssTemplate: (data) => { 
                //data为保存合成前小图片和合成精灵图的信息对象(包括小图片在精灵图中的信息)
                let arr = [],
                    width = data.spritesheet.px.width,
                    height = data.spritesheet.px.height,
                    url =  data.spritesheet.image
                data.sprites.forEach(function(sprite) { 
                    arr.push(
                        ` .icon-${ sprite.name} { width: ${ sprite.px.width}; height: ${ sprite.px.height}; background: url('${ url}') no-repeat ${ sprite.px.offset_x} ${ sprite.px.offset_y}; background-size: ${ width} ${ height}; }`
                    ) 
                })
                return arr.join("")
            }
        }))
        .pipe(gulp.dest("sprite/")) //输出文件路径
})

终端中执行gulp命令,执行sprite任务:

gulp sprite

效果:

项目目录:

小图片:

生成的精灵图:

生成的css样式:

.icon-icon1 { 
    width: 78px;                       
    height: 78px;
    background: url('sprite.png') no-repeat 0px 0px;
    background-size: 238px 238px;
}
.icon-icon2 { 
    width: 78px;                       
    height: 78px;
    background: url('sprite.png') no-repeat -80px 0px;
    background-size: 238px 238px;
}
.icon-icon3 { 
    width: 78px;                       
    height: 78px;
    background: url('sprite.png') no-repeat 0px -80px;
    background-size: 238px 238px;
}
.icon-icon4 { 
    width: 78px;                       
    height: 78px;
    background: url('sprite.png') no-repeat -80px -80px;
    background-size: 238px 238px;
}
.icon-icon5 { 
    width: 78px;                       
    height: 78px;
    background: url('sprite.png') no-repeat -160px 0px;
    background-size: 238px 238px;
}
.icon-icon6 { 
    width: 77px;                       
    height: 77px;
    background: url('sprite.png') no-repeat -80px -160px;
    background-size: 238px 238px;
}
.icon-icon7 { 
    width: 78px;                       
    height: 78px;
    background: url('sprite.png') no-repeat -160px -80px;
    background-size: 238px 238px;
}
.icon-icon8 { 
    width: 78px;                       
    height: 78px;
    background: url('sprite.png') no-repeat 0px -160px;
    background-size: 238px 238px;
}
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服