javascript实现的淘宝旅行通用日历组件用法实例


Posted in Javascript onAugust 03, 2015

本文实例讲述了javascript实现的淘宝旅行通用日历组件用法。分享给大家供大家参考。

在线演示:http://demo.3water.com/js/2015/trip-calendar/demo.html

PS:下面的演示代码,需要用到 trip-calendar.js与trip-calendar.css文件。打包下载地址

具体如下:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="angtian">
<meta name="description" content="淘宝旅行通用日历组件Demo1">
<meta name ="keywords" content="日历, 日历组件, 淘宝旅行日历">
<title>淘宝旅行通用日历组件Demo1</title>
<style>
body{padding:0;margin:0 10px;text-align:center;}
.title{padding:0;margin:10px 0;font:700 18px/1.5 \5fae\8f6f\96c5\9ed1;}
.title a{font:400 14px/1.5 Tahoma;margin-left:20px;}
.example{margin-top:10px;}
.example button{margin:0 5px 10px 0;}
.calendar{display:inline-block;}
</style> 
<script src="http://yui.yahooapis.com/3.5.1/build/yui/yui-min.js"></script>
<script>
var root = 'http://fgm.cc/learn/calendar/trip-calendar/';
YUI({
 modules: {
 'trip-calendar': {
 fullpath: root + 'trip-calendar.js',
 type : 'js',
 requires: ['trip-calendar-css']
 },
 'trip-calendar-css': {
 fullpath: root + 'trip-calendar.css',
 type : 'css'
 }
 }
}).use('trip-calendar', function(Y) {
 /**
 * 非弹出式日历实例
 * 直接将日历插入到页面指定容器内
 */
 var oCal = new Y.TripCalendar({
 container : '#J_Calendar', //非弹出式日历时指定的容器(必选)
 selectedDate: new Date //指定日历选择的日期
 });
 //日期点击事件
 oCal.on('dateclick', function() {
 var selectedDate = this.get('selectedDate');
 alert(selectedDate + '\u3010' + this.getDateInfo(selectedDate) + '\u3011');
 });
 Y.one('#J_Example').delegate('click', function(e) {
 var oTarget = e.currentTarget;
 value = oTarget.getAttribute('data-value');
 switch(true) {
 //日历个数
 case oTarget.hasClass('J_Count'):
 this.set('count', value).render();
 break;
 //显示节假日
 case oTarget.hasClass('J_showHoliday'):
 this.set('isHoliday', true).render();
 break;
 //隐藏节假日
 case oTarget.hasClass('J_hideHoliday'):
 this.set('isHoliday', false).render();
 break;
 //时间范围限定
 case oTarget.hasClass('J_Limit'):
 this.set('minDate', new Date)
  .set('maxDate', '')
  .set('afterDays', value)
  .set('date', new Date());
 break;
 //指定初始日期
 case oTarget.hasClass('J_InitDate'):
 this.set('minDate', value)
  .set('maxDate', '2012-12-21')
  .set('date', value);
 break;
 //下拉表单选择时间
 case oTarget.hasClass('J_Select'):
 this.set('isSelect', true).render();
 Y.all('.J_Count').slice(1).set('disabled', true);
 break;
 //取消下拉表单选择
 case oTarget.hasClass('J_SelectOff'):
 this.set('isSelect', false).render();
 Y.all('.J_Count').slice(1).set('disabled', false);
 break;
 }
 }, 'button', oCal);
});
</script>
</head>
<body>
<h1 class="title">淘宝旅行通用日历组件Demo1 <a href="http://fgm.cc/learn/calendar/trip-calendar/Demo1.html">Demo1</a><a href="http://fgm.cc/learn/calendar/trip-calendar/Demo2.html">Demo2</a><a href="http://fgm.cc/learn/calendar/trip-calendar/Demo3.html">Demo3</a><a href="http://fgm.cc/learn/calendar/trip-calendar/api.html" target="_blank">API文档</a></h1>
<div id="J_Example" class="example">
 <button class="J_Count" data-value="1">单日历</button>
 <button class="J_Count" data-value="2">双日历</button>
 <button class="J_Count" data-value="3">三日历</button>
 <button class="J_Count" data-value="4">四日历</button>
 <br />
 <button class="J_showHoliday">显示节假日</button>
 <button class="J_hideHoliday">隐藏节假日</button>
 <br />
 <button class="J_Limit" data-value="90">限定范围(今天->90天)</button>
 <button class="J_InitDate" data-value="2012-10-01">指定初始日期(2012年10月)</button>
 <button class="J_InitDate" data-value="">取消范围限定</button>
 <br />
 <button class="J_Select">下拉表单选择时间</button>
 <button class="J_SelectOff">取消下拉表单选择</button>
</div>
<div id="J_Calendar" class="calendar"></div>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
JS 无法通过W3C验证的处理方法
Mar 09 Javascript
node.js下when.js 的异步编程实践
Dec 03 Javascript
jQuery实现文本框输入同步的方法
Jun 20 Javascript
基于jquery实现导航菜单高亮显示(两种方法)
Aug 23 Javascript
3种不同的ContextMenu右键菜单实现代码
Nov 03 Javascript
浅析jQuery操作select控件的取值和设值
Dec 07 Javascript
Javascript 实现全屏滚动实例代码
Dec 31 Javascript
Angualrjs和bootstrap相结合实现数据表格table
Mar 30 Javascript
如何在基于vue-cli的项目自定义打包环境
Nov 10 Javascript
从零开始在NPM上发布一个Vue组件的方法步骤
Dec 20 Javascript
jQuery实现的隔行变色功能【案例】
Feb 18 jQuery
使用vue判断当前环境是安卓还是IOS
Apr 12 Vue.js
javascript简单实现类似QQ头像弹出效果的方法
Aug 03 #Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
Aug 03 #Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
Aug 01 #Javascript
JavaScript图片轮播代码分享
Jul 31 #Javascript
简单实现异步编程promise模式
Jul 31 #Javascript
JavaScript数据类型判定的总结笔记
Jul 31 #Javascript
jquery代码实现多选、不同分享功能
Jul 31 #Javascript
You might like
9个实用的PHP代码片段分享
2015/01/22 PHP
PHP使用内置函数生成图片的方法详解
2016/05/09 PHP
Netbeans 8.2与PHP相关的新特性介绍
2016/10/08 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
RSA实现JS前端加密与PHP后端解密功能示例
2019/08/05 PHP
php引用和拷贝的区别知识点总结
2019/09/23 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
extjs中form与grid交互数据(record)的方法
2013/08/29 Javascript
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
2019/11/01 Javascript
解决iView Table组件宽度只变大不变小的问题
2020/11/13 Javascript
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
[00:10]神之谴戒
2019/03/06 DOTA
[37:45]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第二场 12.09
2020/12/11 DOTA
Python 可爱的大小写
2008/09/06 Python
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
Python内建数据结构详解
2016/02/03 Python
多版本Python共存的配置方法
2017/05/22 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
Python设计模式之策略模式实例详解
2019/01/21 Python
Python threading的使用方法解析
2019/08/28 Python
python3实现微型的web服务器
2019/09/03 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
python实现串口通信的示例代码
2020/02/10 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
2020/04/17 Python
详解numpy1.19.4与python3.9版本冲突解决
2020/12/15 Python
CSS3 please 跨浏览器的CSS3产生器
2010/03/14 HTML / CSS
Html5嵌入钉钉的实现示例
2020/06/04 HTML / CSS
学习十八大精神心得体会
2013/12/31 职场文书
美术毕业生求职信
2014/02/25 职场文书
入党自传范文2015
2015/06/26 职场文书
话题作文之关于呼唤
2019/11/29 职场文书
Golang 使用Map实现去重与set的功能操作
2021/04/29 Golang
JS数组去重详情
2021/11/07 Javascript
Javascript中async与await的捕捉错误详解
2022/03/03 Javascript