Gulp构建实例

1.结构说明

assets项目资源目录,dev开发目录,dist编译输出目录,gulpfile.js自动化工具API

2. gulp的使用

1.安装node环境(自行goole即可)

2.全局安装gulp

$ npm install gulp -g

3.进入到需要gulp管理的项目路径, 如 /gulp 再安装一遍

$ npm install gulp --save-dev

4.安装gulp插件

$ npm install gulp-ruby-sass gulp-autoprefixer gulp-minify-css gulp-jshint gulp-concat gulp-uglify gulp-imagemin gulp-notify gulp-rename gulp-livereload gulp-cache del --save-dev

sass的编译 (gulp-ruby-sass)
自动添加css前缀(gulp-autoprefixer
压缩css(gulp-minify-css
js代码校验(gulp-jshint
合并js文件(gulp-concat
压缩js代码(gulp-uglify
压缩图片(gulp-imagemin
自动刷新页面(gulp-livereload
图片缓存,只有图片替换了才压缩(gulp-cache
更改提醒(gulp-notify
清除文件(del

  
  
5.运行task任务
```console
$ gulp

监听文档实现实时编译

$ gulp watch

6.gulp的API请查看gulpfile.js文件

3. scss文件规范以及说明

1.各个小模块以下划线开头全小写命名,多单词以 - 符号分隔,总模块正常,以该模块文件夹命名,在其中导入需要的小模块(详细规则请查看font-awesome的scss源码,更多内容google脑补)
例:
_path.scss路径配置文件,_mixins.scss预编译文件,_variables.scss变量定义文件,font-awesome.scss模块导入文件

4. 脚本使用说明

基本组件

1.error.js
用途:低版本浏览器访问限制
用法:在head标签中最先引入下列代码

    <!--[if lt IE 9]>
      <script src="dist/js/error.min.js"></script>
    <![endif]-->

2.mian.js
用途:javascript入口文件负责渲染数据处理交互
用法:引入即可,涉及模块较多后续完善模块说明

3.date.js
用途:解析处理日期数据,支持多种日期格式
用法:调用Date方法

Date.today()                    // Returns today's date, with time set to 00:00 (start of day).

Date.today().next().friday()    // Returns the date of the next Friday.
Date.today().last().monday()    // Returns the date of the previous Monday.

new Date().next().march()       // Returns the date of the next March.
new Date().last().week()        // Returns the date one week ago. 

Date.today().is().friday()      // Returns true|false if the day-of-week matches.
Date.today().is().fri()         // Abbreviated day names. 

Date.today().is().november()    // Month names.
Date.today().is().nov()         // Abbreviated month names.

4.daterange-picker.js
用途:基于bootstrapt的日期范围选择器

5.modernizr.custom.js
用途:提供过渡动画支持

jQuery组件

1.jquery.bootstrap.wizard.js
用途:基于jQuery的Bootstrap向导式插件

2.jquery.dataTables.js
用途:表格处理插件,包括排序分页,宽度自动处理
用法:引入后,以下结构绘制表格
例:

<table class="table table-bordered" id="dataTable1">
    <thead>
        <th class="check-header">
            <label><input id="checkAll" name="checkAll" type="checkbox"><span></span></label>
        </th>
        <th>字段1</th>
        <th>字段2</th>
        <th>字段3</th>
        <th>字段4</th>
        <th>字段5</th>
        <th>字段6</th>
        <th></th>
    </thead>
    <tbody>
    ...
    ...
    ...
    </tbody>
</table>
/*
    根据ID初始化表格,以下 .table 类用于实现单选和多选
*/
$("#dataTable1").dataTable({
  "sPaginationType": "full_numbers",
  aoColumnDefs: [
    {
      bSortable: false,
      aTargets: [0, -1]
    }
  ]
});
$('.table').each(function() {
  return $(".table #checkAll").click(function() {
    if ($(".table #checkAll").is(":checked")) {
      return $(".table input[type=checkbox]").each(function() {
        return $(this).prop("checked", true);
      });
    } else {
      return $(".table input[type=checkbox]").each(function() {
        return $(this).prop("checked", false);
      });
    }
  });
});

3.jquery.easy-pie-chart.js
用途:饼状图绘制工具
用法:引入文件后,按ID初始化DOM元素
传送门:rendro.github.io
例:

<!-- Donut Charts -->
<div class="col-lg-8">
<div class="widget-container">
  <div class="heading">
    <i class="fa fa-bar-chart"></i> 优惠券使用率
  </div>
  <div class="widget-content clearfix">
    <div class="col-sm-4">
      <div class="pie-chart1 pie-chart pie-number easyPieChart" data-percent="60" style="width: 200px; height: 200px; line-height: 200px;">
        60%
      <canvas width="200" height="200"></canvas><p class="h6">总使用率</p></div>
    </div>
    <div class="col-sm-4">
      <div class="pie-chart2 pie-chart pie-number easyPieChart" data-percent="86" style="width: 200px; height: 200px; line-height: 200px;">
        86%
      <canvas width="200" height="200"></canvas><p class="h6">代金券使用率</p></div>
    </div>
    <div class="col-sm-4">
      <div class="pie-chart3 pie-chart pie-number easyPieChart" data-percent="34" style="width: 200px; height: 200px; line-height: 200px;">
        34%
      <canvas width="200" height="200"></canvas><p class="h6">折扣券使用率</p></div>
    </div>
  </div>
</div>
</div>
<!-- end Donut Charts -->
/*
# =============================================================================
#   Easy Pie Chart
# =============================================================================
*/
/*  >60%          #81e970   green
    >=30% & <=60% #fab43b   yellow
    <30%          #f46f50   red
    
    size        图型大小
    lineWidth   线宽
    lineCap     线类型
    barColor    线颜色
    animate     动画速度
    scaleColor  选择色
*/
$(".pie-chart1").easyPieChart({
  size: 200,
  lineWidth: 12,
  lineCap: "square",
  barColor: "#81e970",
  animate: 800,
  scaleColor: false
});
$(".pie-chart2").easyPieChart({
  size: 200,
  lineWidth: 12,
  lineCap: "square",
  barColor: "#81e970",
  animate: 800,
  scaleColor: false
});
$(".pie-chart3").easyPieChart({
  size: 200,
  lineWidth: 12,
  lineCap: "square",
  barColor: "#f46f50",
  animate: 800,
  scaleColor: false
});

4.jquery.sparkline.js
用途:canvas图表绘制工具
用法:引入后按ID初始化,ul部分为横轴坐标,可在style.scss文件中配置宽度
传送门:omnipotent.net
例:

<div class="widget-container">
  <div class="heading">
    <i class="fa fa-area-chart"></i> 日活跃用户
  </div>
  <div class="widget-content padded">
    <div class="chart-graph line-chart">
      <div id="linechart-2-1"><canvas width="619" height="226" style="display: inline-block; width: 619px; height: 226px; vertical-align: top;"></canvas></div>
      <ul class="chart-text-axis day">
        <li>
          1
        </li>
        <li>
          5
        </li>
        <li>
          10
        </li>
        <li>
          15
        </li>
        <li>
          20
        </li>
        <li>
          25
        </li>
      </ul>
      <!-- end Line Chart -->
    </div>
  </div>
</div>
(function() {
  var linechartResize;
  /*
    $(id).sparkline([number1, number2, ... ...],{
        options
    })
    
    
    type:                       线类型
    width:                      宽度
    height:                     高度
    lineColor:                  线颜色
    fillColor:                  填充色
    lineWidth:                  线宽
    spotColor:                  点色
    minSpotColor:               最小点色
    maxSpotColor:               最大点色
    highlightSpotColor:         高亮点色
    highlightLineColor:         高亮线色
    spotRadius:                 点半径
    chartRangeMin:              图最小范围
  */
  linechartResize = function() {
    $("#linechart-1").sparkline([160, 240, 120, 200, 230, 180, 350, 230, 200, 280, 380, 400, 360, 300, 220, 200, 150, 40, 70, 180, 110,200, 160, 200, 220, 350, 230, 200, 280, 380, 70], {
      type: "line",
      width: "100%",
      height: "226",
      lineColor: "#a5e1ff",
      fillColor: "rgba(241, 251, 255, 0.9)",
      lineWidth: 2,
      spotColor: "#a5e1ff",
      minSpotColor: "#bee3f6",
      maxSpotColor: "#a5e1ff",
      highlightSpotColor: "#80cff4",
      highlightLineColor: "#cccccc",
      spotRadius: 6,
      chartRangeMin: 0
    });
})

5.jquery.validate.js
用途:表单验证插件
用法:添加DOM元素自定义属性(具体内容见官方API)
传送门:jqueryvalidation.org
例:

(1)required:true 必输字段
(2)remote:"check.php" 使用ajax方法调用check.php验证输入值
(3)email:true 必须输入正确格式的电子邮件
(4)url:true 必须输入正确格式的网址
(5)date:true 必须输入正确格式的日期
(6)dateISO:true 必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22 只验证格式,不验证有效性
(7)number:true 必须输入合法的数字(负数,小数)
(8)digits:true 必须输入整数
(9)creditcard: 必须输入合法的信用卡号
(10)equalTo:"#field" 输入值必须和#field相同
(11)accept: 输入拥有合法后缀名的字符串(上传文件的后缀)
(12)maxlength:5 输入长度最多是5的字符串(汉字算一个字符)
(13)minlength:10 输入长度最小是10的字符串(汉字算一个字符)
(14)rangelength:[5,10] 输入长度必须介于 5 和 10 之间的字符串")(汉字算一个字符)
(15)range:[5,10] 输入值必须介于 5 和 10 之间
(16)max:5 输入值不能大于5
(17)min:10 输入值不能小于10

Bootstrap组件

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,809评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,189评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,290评论 0 359
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,399评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,425评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,116评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,710评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,629评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,155评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,261评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,399评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,068评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,758评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,252评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,381评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,747评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,402评论 2 358

推荐阅读更多精彩内容