关于日历控件,我做了好多次尝试,一直致力于开发一款简单易用的日历控件。我的想法是争取在引用这个控件后,用一行js代码就能做出一个日历,若在加点参数,就能自定义外观和功能丰富多彩的日历。Calendar 3.1是我初步满意的一个作品。
日历的常用场景有两种,一种是用在日期选择器里面,比如某个位置需要输入日期,点一下输入框会弹出一个日历以供选择日期;另一种是单纯的显示作用,在页面某个地方显示日历,一般起装饰作用,很多博客首页都会有这种日历。我前面的随笔介绍的都是第一种日历,而今天要介绍的Calendar 3.1是第二种日历。有兴趣的朋友可以去我的github主页上查看,https://github.com/dige1993/calendar.git
首先当然要看的是效果,先看一张素颜:
然后在调用过程中指定若干参数,可以定义出比较漂亮的日历,这里仅仅是演示,上一张红绿配的丑照:
在区域宽度小于200px的时候,会提示无法正常显示日历:
接下来看下这款控件的用法。
首先照例是引用jquery库和calendar-3.1-js,然后准备一个width>=200px的div,高度最好自适应内容,如果这个div的id为test,则只要一句calendar_init($("#test"));就能在div内显示日历了。代码如下:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>Calendar 3.1</title> <script src="js/jquery-2.1.1.min.js"></script> <script src="js/calendar-3.1.js"></script> <script type="text/javascript"> $(document).ready(function(e) { calendar_init($("#test"));//在id=test的DIV中显示日历 }); </script> <style> #test { width:200px; height:auto; overflow:hidden; border:solid 1px; margin-bottom:20px; } </style> </head> <body> <div id="test"></div> </body> </html>
以上就是素颜效果的代码,如果还想自定义UI,可以在调用calendar_init()时加上第二个参数。浓妆照的代码如下:
calendar_init($("#test"),{ title_color:"yellow", title_bg_color:"red", day_color:"brown", day_bg_color:"green", date_bg_color:"pink", date_color:"blue", date_active_color:"red" });
calendar_init函数的第二个参数是可选项,类型是包含键值对的对象,下面用表格介绍下这个参数的每个键的含义及其取值:
参数 | 含义及取值 |
title_bg_color | 年月区域的背景颜色,取值遵循web色彩取值规范,默认透明 |
title_color | 年月区域的字体颜色,包括那几个按钮的前景色,取值遵循web色彩取值规范,默认透明 |
line_style | 年月区域与星期区域的分隔线的style,取值遵循css边框取值规范,默认值:solid 1px |
day_bg_color | 星期区域的背景颜色,取值遵循web色彩取值规范,默认透明 |
day_color | 星期区域的字体颜色,取值遵循web色彩取值规范,默认透明 |
date_bg_color | 日期区域的背景颜色,取值遵循web色彩取值规范,默认透明 |
date_color | 日期区域的字体颜色,取值遵循web色彩取值规范,默认透明 |
date_active_color | 当前日期的背景颜色,取值遵循web色彩取值规范,默认透明 |
line_height | 行高,默认30px |
calendar_init函数的第一个参数是必需项,用于指示在哪个容器里面显示日历。如果容器的宽度小于200px, 还会出现上面第3张图里面的错误提示。更多内容呢,请访问我的github主页:https://github.com/dige1993/calendar.git