jquery原创实用插件之04 普通联动日历选择器/针对出生日期日历选择器

有一周没有更新了,终于花了2天时间把这个插件搞定了,具体里面功能如何,还得自己查看哦,都是自适应显示位置的哦。

大家如果发现存在bug或者需要改进的地方欢迎反馈,下面分享出来,效果图如下

代码如下:

  1 /*
  2  * version : 1.0.1
  3  * site    : *************
  4  * author  : Jerry(http://www.cnblogs.com/webdesign-Jerry/)
  5  * date    : 2013/01/24
  6  * email   : jerry_webdesign@msn.cn
  7  * /
  8  
  9 ;(function($){
 10     $.extend($.fn,{
 11         posControl:function(options){//日历
 12             var options  = $.extend({controlObj:null},options);    
 13             this.each(function(){
 14                 var self=this;
 15                 var $controlObj=options.controlObj;
 16                 var L=$(self).offset().left,
 17                     T=$(self).offset().top,
 18                     h=$(self).outerHeight(true),
 19                     w=$controlObj.outerWidth(true),
 20                     W=$(window).width(),
 21                     H=$controlObj.outerHeight(true),
 22                     S=$(window).scrollTop(),
 23                     t=$(window).height(),
 24                     a=$(self).width(),
 25                     l;
 26                 var s=t-T-h-2+S;
 27                 L+w>W?l=a+L-w:l=L;
 28                 s>=H?$controlObj.css({'left':l,'top':T+h+2}):$controlObj.css({'left':l,'top':T-H-2});
 29             });
 30             return this;
 31         }
 32     });    
 33     $.extend($,{
 34         changeWindowSize:function(options){//窗口改变大小后执行function
 35             var defaults = {
 36                 currentObj:{
 37                     cityObj:{
 38                         targetObj:'',
 39                         posObj:''
 40                     }
 41                 }
 42             };
 43             var options  = $.extend(true,defaults,options);
 44             $(window).bind('resize',function(){
 45                 var $cityObj=options.currentObj.cityObj;
 46                 var $targetObj=$cityObj.targetObj;
 47                 var $posObj=$cityObj.posObj;
 48                 if(typeof($targetObj)!='string'&&$posObj.css('display')!='none'){
 49                     $targetObj.posControl({controlObj:$posObj});//日历/城市重新定位    
 50                 };
 51             });
 52         },
 53         calendarControl:function(options){//普通/生日日历选择控件
 54             var defaults = {
 55                 startObjClass : null,//出发日期
 56                 stopObjClass : null,//结束日期
 57                 birthObjClass : null,//出生日期
 58                 num : 1 ,//联动日历数量
 59                 minSelect : function(){},//限制最小选择日期
 60                 maxSelect : function(){} //限制最大选择日期
 61             };
 62             var options  = $.extend(defaults,options);    
 63             var $checkInDate=null;
 64             var $checkOutDate=null;
 65             var $checkBirthDate=$('.'+options.birthObjClass);
 66             var length=options.num;
 67             var calendar={
 68                 init:function(){
 69                     this.year=null; //初始化年
 70                     this.month=null; //初始化月份
 71                     this.name=null;
 72                     this.apart=1;//默认结束日期在出发日期之后的第几天
 73                     this.target=null;
 74                     this.currentdate=new Date(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()+1);
 75                     this.nextdate=new Date(this.currentdate.getFullYear(),this.currentdate.getMonth(),this.currentdate.getDate()+this.apart);
 76                     this.today=this.returnDate(this.currentdate);
 77                     this.nextDay=this.returnDate(this.nextdate);
 78                     $('.'+options.startObjClass).val(this.today).click(function(e){
 79                         e.stopPropagation();
 80                         $('#birth-calendar').hide();
 81                         $checkInDate=$(this);
 82                         calendar.createCalendar(calendar.returnNewDate($checkInDate.val()),e.target);
 83                     }).next().text(calendar.returnWeekend(calendar.currentdate));
 84                     $('.'+options.stopObjClass,$('.'+options.startObjClass).parents('form')).val(this.nextDay).click(function(e){
 85                         e.stopPropagation();
 86                         $('#birth-calendar').hide();
 87                         $checkOutDate=$(this);
 88                         $checkOutDate.data('disabled',true);
 89                         calendar.createCalendar(calendar.returnNewDate($checkOutDate.val()),e.target);
 90                     }).next().text(calendar.returnWeekend(calendar.nextdate));;
 91                     $(document).bind('click',this.hideCalendar);        
 92                 },
 93                 returnDate:function(date){
 94                     return date.getFullYear()+'-'+calendar.formatDate(date.getMonth()+1)+'-'+calendar.formatDate(date.getDate());
 95                 },
 96                 returnWeekend:function(date){//获取星期
 97                     var w=date.getDay();
 98                     switch(w){
 99                         case 0 : return '星期日';break;
100                         case 1 : return '星期一';break;
101                         case 2 : return '星期二';break;
102                         case 3 : return '星期三';break;
103                         case 4 : return '星期四';break;
104                         case 5 : return '星期五';break;
105                         case 6 : return '星期六';break;
106                         default : break ;
107                     }
108                 },
109                 returnNewDate:function(date){
110                     var arr=date.split('-');
111                     return new Date(arr[0],Number(arr[1])-1,Number(arr[2]));
112                 },
113                 getFirstDay:function(year,month){ //获取每个月第一天星期几
114                     var firstDay = new Date(year,month,1);
115                     return firstDay.getDay(); //getDay()方法来获取
116                 },
117                 getMonthLen:function(year,month){ //获取当月总共有多少天
118                     var nextMonth = new Date(year,month+1,1); //获取下个月的第一天
119                     nextMonth.setHours(nextMonth.getHours() - 3); //由于获取的天是0时,所以减去3小时则可以得出该月的天数
120                     return nextMonth.getDate(); //返回当月最后一天
121                 },
122                 createCalendar:function(date,a){ //创建日历方法
123                     if($('#calendar-item').length<=0){
124                         $('body').append('<div id="calendar-item"><div id="calendar-main"><a href="javascript:;" class="plugin MonthBtn prevMonth" title="上一月"></a><a href="javascript:;" class="plugin MonthBtn nextMonth" title="下一月"></a></div></div>');
125                         calendar.switchCalendar();
126                     };
127                     calendar.clearCalendar();
128                     calendar.name=$('#calendar-item');
129                     calendar.name.show();
130                     var month=date.getMonth();
131                     for(var i=0;i<length;i++){
132                         var newDate=new Date(date.getFullYear(),month,1);
133                         calendar.addCalendar(newDate,i);
134                         month++;
135                     };
136                     var now=new Date().getFullYear()+'-'+calendar.formatDate(new Date().getMonth()+1)+'-'+calendar.formatDate(new Date().getDate());
137                     $('#'+now).addClass('now');
138                     calendar.getWidth(length);
139                     if(a){
140                         calendar.target=$(a);
141                         calendar.target.posControl({controlObj:calendar.name});
142                         $.changeWindowSize({
143                             currentObj:{cityObj:{
144                                     targetObj:calendar.target,
145                                     posObj:calendar.name
146                                 }
147                             }
148                         });
149                     };
150                     $('.prevMonth',calendar.name).removeAttr('id').data('disabled',true);
151                     $('.nextMonth',calendar.name).removeAttr('id').data('disabled',true);
152                     var $select,l;
153                     var $prev=$('#'+$('.'+options.startObjClass,calendar.target.parents('form')).val());
154                     var $next=$('#'+$('.'+options.stopObjClass,calendar.target.parents('form')).val());
155                     if(calendar.target.hasClass(options.startObjClass)){
156                         $select=$('#'+calendar.target.val());
157                         l=$('#'+now).parent().index();
158                         calendar.disabledPrevSelect($('#'+now));//限制当前日期之前的选择
159                         var a=$next.parent().index();
160                         var j=$next.parents('.calendar-group').index()-2;
161                         if($('.'+options.stopObjClass,calendar.target.parents('form')).data('disabled')==true&&calendar.target.data('disabled')==true){
162                             calendar.disabledNextSelect($next,a,j);//限制出发日期
163                         };
164                     }else{
165                         $select=$prev;
166                         l=$select.parent().index();    
167                         calendar.disabledPrevSelect($prev);//限制选定后的出发日期之前的选择
168                     };
169                     $('.calendar-day:first li:lt('+l+') a',calendar.name).addClass('disabled');
170                     $('#'+calendar.target.val()).addClass('check');
171                     calendar.name.click(function(e){
172                         e.stopPropagation();
173                     });
174                     calendar.getSelectDate(calendar.target);
175                 },
176                 disabledPrevSelect:function(a){
177                     if(a.length>0){
178                         $('.prevMonth',calendar.name).attr('id','disabledPrevMonth').data('disabled',false);
179                     };
180                 },
181                 disabledNextSelect:function(a,b,c){
182                     if(a.length>0){
183                         $('.nextMonth',calendar.name).attr('id','disabledNextMonth').data('disabled',false);    
184                         $('.calendar-group:eq('+c+') li:gt('+b+') a',calendar.name).addClass('disabled');
185                         $('.calendar-group:gt('+c+') a',calendar.name).addClass('disabled');
186                     };
187                 },
188                 addCalendar:function(date,n){
189                     calendar.year = date.getFullYear(); //获得当时的年份,并赋值到calendar属性year中,以便别的方法的调用
190                     calendar.month = date.getMonth(); //跟上面获取年份的目的一样
191                     var trueMonth=calendar.formatDate(calendar.month+1);
192                     $('#calendar-main').append('<div class="calendar-group"><div class="calendar-title">'+calendar.year+'年'+trueMonth+'月</div><div class="calendar-month"><div class="calendar-week"><span class="weekend">日</span><span>一</span><span>二</span><span>三</span><span>四</span><span>五</span><span class="weekend">六</span></div><div class="calendar-day"><ul><div class="clear"></div></ul><div class="calendar-singleMonth">'+trueMonth+'</div></div></div></div>');
193                     var monthLen = calendar.getMonthLen(calendar.year,calendar.month); //获取当月最后一天
194                     var firstDay = calendar.getFirstDay(calendar.year,calendar.month); //获取月份首天为星期几
195                     var str='';
196                     for(var i=0;i<monthLen+firstDay;i++){ //循环写入每天的值
197                         if(i>=firstDay&&i<monthLen+firstDay){
198                             var day=i-firstDay+1;
199                             var trueDay=calendar.formatDate(day);
200                             if(i%7==0||(i+1)%7==0){
201                                 str+='<li><a id="'+calendar.year+'-'+trueMonth+'-'+trueDay+'" href="javascript:;" class="weekend">'+day+'</a></li>';    
202                             }else{
203                                 str+='<li><a id="'+calendar.year+'-'+trueMonth+'-'+trueDay+'" href="javascript:;">'+day+'</a></li>';        
204                             };
205                         }else{
206                             str+='<li><a href="javascript:;" class="disabled"></a></li>';    
207                         };
208                     };
209                     $('.calendar-day ul').eq(n).prepend(str);
210                 },
211                 getSelectDate:function(o){
212                     var $date=$('.calendar-day a:not(".disabled")',calendar.name);
213                     $date.bind('click',function(){
214                         var date=$(this).attr('id');
215                         var startDate=calendar.returnNewDate(o.val());
216                         var is=calendar.returnDate(new Date(startDate.getFullYear(),startDate.getMonth(),startDate.getDate()+calendar.apart));
217                         calendar.currentdate=calendar.returnNewDate(date);
218                         o.val(date).next().text(calendar.returnWeekend(calendar.currentdate));//星期
219                         if(o.hasClass(options.startObjClass)){
220                             calendar.today=calendar.returnDate(calendar.currentdate);
221                             var stopDate=$('.'+options.stopObjClass,$checkInDate.parents('form')).val();
222                             if(is==stopDate){
223                                 calendar.nextdate=new Date(calendar.currentdate.getFullYear(),calendar.currentdate.getMonth(),calendar.currentdate.getDate()+calendar.apart);
224                                 calendar.nextDay=calendar.returnDate(calendar.nextdate);
225                                 $('.'+options.stopObjClass,$checkInDate.parents('form')).val(calendar.nextDay).next().text(calendar.returnWeekend(calendar.nextdate));    
226                             };
227                         }else{
228                             calendar.nextDay=calendar.returnDate(calendar.returnNewDate(date));    
229                             $('.'+options.startObjClass,o.parents('form')).data('disabled',true);
230                         };
231                         calendar.name.hide();
232                     });
233                 },
234                 switchCalendar:function(){
235                     console.log(111);
236                     $('.prevMonth',calendar.name).click(function(){
237                         if($(this).data('disabled')==true){
238                             calendar.createCalendar(new Date(calendar.year,calendar.month-length,1));    
239                         };
240                     });
241                     $('.nextMonth',calendar.name).click(function(){
242                         if($(this).data('disabled')==true){
243                             calendar.createCalendar(new Date(calendar.year,calendar.month-length+2,1));
244                         };
245                     });
246                 },
247                 clearCalendar:function(){ //清空
248                     $('.calendar-group',calendar.name).remove();
249                 },
250                 formatDate:function(d){
251                     if(d<10){
252                         d='0'+d;
253                     };
254                     return d;
255                 },
256                 getWidth:function(n){
257                     var $group=$('.calendar-month',calendar.name);
258                     var w=$('.calendar-group',calendar.name).outerWidth(true);
259                     var h=[];
260                     for(var i=0;i<n;i++){
261                         h.push($group.eq(i).height());
262                     };
263                     calendar.name.css('width',n*w);
264                     $group.css('height',Math.max.apply(null,h));
265                 },
266                 hideCalendar:function(){
267                     $('#calendar-item').hide();
268                 }
269             };
270             var birth={
271                 init:function(){
272                     this.year=new Date().getFullYear()-20; //初始化年
273                     this.birthMonth=null; //选择的年份
274                     this.birthYear=null;//选择的月份
275                     this.birthDay=null;//选择的日期
276                     this._this=null;
277                     this.name=null;
278                     this.currentYear=new Date().getFullYear();//当前年份
279                     this.currentMonth=calendar.formatDate(new Date().getMonth()+1);//当前月份
280                     this.currentDay=new Date().getDate();//当前日期
281                     $checkBirthDate.click(function(e){
282                         e.stopPropagation();
283                         $('#calendar-item').hide();
284                         birth._this=$(this);
285                         birth.create(e.target);
286                     });
287                     $(document).bind('click',this.hideBirth);
288                 },
289                 create:function(e){
290                     var $selectPrevBtn,$selectNextBtn;
291                     if($('#birth-calendar').length<=0){
292                         $('body').append('<div id="birth-calendar"><div id="birth-year"><div class="selectYearBtn selectPrevBtn"><em class="plugin"></em></div><div class="selectYearBtn selectNextBtn"><em class="plugin"></em></div><h3 class="birth-calendar-t">请您选择年份</h3><div class="selectBox"><div class="selectList"></div></div></div></div>');
293                         birth.name=$('#birth-calendar');
294                         birth.addYear(1);
295                         $selectPrevBtn=$('.selectPrevBtn',birth.name);
296                         $selectNextBtn=$('.selectNextBtn',birth.name);
297                         $selectPrevBtn.removeAttr('id').data('disable',true).bind('click',{'data':$selectPrevBtn},birth.prevPageYear);
298                         $selectNextBtn.removeAttr('id').data('disable',true).bind('click',{'data':$selectNextBtn},birth.nextPageYear);
299                     };
300                     $(e).posControl({controlObj:birth.name});
301                     $.changeWindowSize({
302                         currentObj:{cityObj:{
303                                 targetObj:$(e),
304                                 posObj:birth.name
305                             }
306                         }
307                     });
308                     birth.name.show();
309                     birth.disSelectYear($selectNextBtn);
310                     birth.name.click(function(e){
311                         e.stopPropagation();
312                     });
313                 },
314                 disSelectYear:function(o){
315                     var $cur=$('#year'+birth.currentYear);
316                     var index=$cur.index();
317                     if($cur.length>0){
318                         o.data('disable',false).attr('id','disabledSelectNextBtn');    
319                         $cur.parent().find('li:gt('+index+')').addClass('disabled');
320                     };
321                 },
322                 disSelectMonth:function(){
323                     var $cur=$('#month'+birth.currentMonth);
324                     var index=$cur.index();
325                     if($cur.length>0){
326                         $cur.parent().find('li:gt('+index+')').addClass('disabled');
327                     };
328                 },
329                 disSelectDay:function(){
330                     var $cur=$('#day'+birth.currentDay);
331                     var index=$cur.index();
332                     if($cur.length>0){
333                         $cur.parent().find('li:gt('+index+')').addClass('disabled');
334                     };
335                 },
336                 addYear:function(n){
337                     switch(n){
338                         case -1:$('.selectList').prepend('<ul class="selectList-s"></ul>');break;
339                         case  1:$('.selectList').append('<ul class="selectList-s"></ul>');break;
340                         default:break;
341                     };
342                     var str_y='';
343                     for(var i=11;i>=0;i--){
344                         str_y+='<li id="year'+(birth.year-i)+'">'+(birth.year-i)+'</li>';
345                     };
346                     switch(n){
347                         case -1:$('.selectList-s:first').prepend(str_y);break;
348                         case  1:$('.selectList-s:last').prepend(str_y);break;
349                         default:break;
350                     };
351                     $('#birth-year li',birth.name).bind('click',birth.selectYear);
352                 },
353                 prevPageYear:function(e){
354                     var $target=e.data.data;
355                     $('.selectNextBtn',birth.name).removeAttr('id').data('disable',true);
356                     if($target.data('disable')==true){
357                         $target.data('disable',false);
358                         birth.year-=12;    
359                         birth.addYear(-1);
360                         $('.selectList-s:first',birth.name).css('marginLeft',-194);
361                         $('.selectList-s:first',birth.name).stop(true,false).animate({'marginLeft':-5},500,function(){
362                             $('.selectList-s:last').remove();
363                             $target.data('disable',true);
364                             birth.disSelectYear($('.selectNextBtn',birth.name));    
365                         });
366                     };
367                 },
368                 nextPageYear:function(e){
369                     var $target=e.data.data;
370                     $target.removeAttr('id');
371                     if($target.data('disable')==true){
372                         $target.data('disable',false);
373                         birth.year+=12;                
374                         birth.addYear(1);
375                         $('.selectList-s:first',birth.name).stop(true,false).animate({'marginLeft':-194},500,function(){
376                             $('.selectList-s:first',birth.name).remove();    
377                             $target.data('disable',true);
378                         });
379                     };
380                     birth.disSelectYear($target);
381                 },
382                 selectYear:function(e){
383                     var $target=$(e.target);
384                     if(!$target.hasClass('disabled')){
385                         birth.birthYear=$target.text();
386                         $('#birth-year',birth.name).after('<div id="birth-month"><h3 class="birth-calendar-t">请您选择月份</h3><ul class="selectList-s"><li id="month01">01</li><li id="month02">02</li><li id="month03">03</li><li id="month04">04</li><li id="month05">05</li><li id="month06">06</li><li id="month07">07</li><li id="month08">08</li><li id="month09">09</li><li id="month10">10</li><li id="month11">11</li><li id="month12">12</li></ul></div>');
387                         $('#birth-year',birth.name).remove();
388                         $('#birth-month',birth.name).show();
389                         $('#birth-month li',birth.name).bind('click',birth.selectMonth);    
390                         if(birth.birthYear==birth.currentYear){
391                             birth.disSelectMonth();
392                         };
393                     };
394                 },
395                 selectMonth:function(e){
396                     var $target=$(e.target);
397                     if(!$target.hasClass('disabled')){
398                         birth.birthMonth=$target.text();
399                         $('#birth-month',birth.name).after('<div id="birth-days"><h3 class="birth-calendar-t">请您选择日期</h3><ul class="selectList-d"></ul></div>');
400                         var monthLen = calendar.getMonthLen(birth.birthYear,Number(birth.birthMonth)-1); //获取当月最后一天
401                         var firstDay = calendar.getFirstDay(birth.birthYear,Number(birth.birthMonth)-1); //获取月份首天为星期几
402                         var str_d='';
403                         for(var i=0;i<42;i++){ 
404                             if(i>=firstDay&&i<monthLen+firstDay){
405                                 str_d+='<li class="check" id="day'+calendar.formatDate(i-firstDay+1)+'">'+(i-firstDay+1)+'</li>';        
406                             }else{
407                                 str_d+='<li class="disabled"></li>';    
408                             };
409                         };
410                         $('.selectList-d',birth.name).append(str_d);
411                         $('#birth-month',birth.name).remove();
412                         $('#birth-days',birth.name).show();
413                         $('#birth-days li',birth.name).bind('click',birth.selectDay);
414                         if(birth.birthYear==birth.currentYear&&birth.birthMonth==birth.currentMonth){
415                             birth.disSelectDay();
416                         };
417                     };
418                 },
419                 selectDay:function(e){
420                     var $target=$(e.target);
421                     if(!$target.hasClass('disabled')){
422                         birth.birthDay=$target.text();
423                         birth.name.remove();
424                         birth._this.val(birth.birthYear+'-'+birth.birthMonth+'-'+calendar.formatDate(birth.birthDay));
425                     };
426                 },
427                 hideBirth:function(){
428                     $('#birth-calendar').hide();
429                 }
430             };
431             calendar.init();//调用普通日历
432             birth.init();//调用出生日期日历
433         }
434     });
435 })(jQuery);
436 
437 ;(function($){
438     //调用日历
439     $.calendarControl({
440         startObjClass : 'checkInDate',//出发日期className
441         stopObjClass : 'checkOutDate',//结束日期className
442         birthObjClass : 'checkBirthDate',//出生日期className
443         num : 3 //联动日历数量    
444     });
445 })(jQuery)
 1 /* calendarItem */
 2 #calendar-item{ background:#fff;position:absolute;left:100px; top:100px;z-index:9998;border:solid 1px #aaa; padding:1px; border-radius:5px;}
 3 #calendar-main{ position:relative;border-radius:5px; height:1%;overflow:hidden;}
 4 #calendar-main .MonthBtn{ display:block; width:17px; height:16px; position:absolute; top:2px;}
 5 #calendar-main .prevMonth{ left:20px; background-position:-2px -32px;}
 6 #calendar-main .prevMonth:hover{background-position:-2px -49px;}
 7 #calendar-main .nextMonth{ right:20px; background-position:-2px -100px;}
 8 #calendar-main .nextMonth:hover{background-position:-2px -117px;}
 9 #calendar-main #disabledPrevMonth{background-position:-2px -66px; cursor:default;}
10 #calendar-main #disabledNextMonth{background-position:-2px -83px; cursor:default;}
11 .calendar-group{ width:185px; float:left;}
12 .calendar-title{ height:22px; line-height:22px; text-align:center; background:#e8eff5;font-family:Verdana; font-weight:bold;}
13 .calendar-month{ background:#fff;margin:5px 0px 5px -1px; border-left:solid 1px #aaa; padding:0px 5px;}
14 .calendar-week{ height:24px;line-height:24px; }
15 .calendar-week span{display:inline-block;zoom:1;width:25px;text-align:center; color:#777; background:#fff; float:left; font-weight:bold;}
16 .calendar-week span.weekend{ color:#f60;}
17 .calendar-day{ position:relative;}
18 .calendar-day ul{ position:relative; z-index:9999; display:block; height:100%;}
19 .calendar-day ul li{ float:left;}
20 .calendar-day ul li a{ display:block; width:24px; height:20px; line-height:20px; text-align:center; padding:0px 0px 1px 1px;font-family:Verdana;font-weight:bold;float:left;background:url(../images/plugin.png) no-repeat 100px 100px;}
21 .calendar-day ul li a:hover{ text-decoration:none; background-position:-1px -135px; color:#333;}
22 .calendar-day ul li a.weekend{ color:#f60;}
23 .calendar-day ul li a.check{ background-position:-1px -157px; color:#09c;}
24 .calendar-day ul li a.now{ color:#b00;}
25 .calendar-day ul li a.disabled{ color:#777; font-weight:normal; background:none; cursor:default;}
26 .calendar-singleMonth{ height:106px;position:absolute;left:0px; top:0px;width:175px; font-size:80px; font-style:italic;text-align:center; line-height:106px; opacity:0.1; filter:alpha(opacity=10); font-family:arial;}
27 /* birth-calendar */
28 #birth-calendar{background:#fff;position:absolute;z-index:9998;border:solid 1px #aaa; padding:5px; border-radius:5px; width:184px;}
29 .birth-calendar-t{ font-size:14px; font-weight:normal; margin-bottom:5px; text-align:center; border-bottom:solid 1px #ddd; padding-bottom:3px; margin-top:-3px;}
30 #birth-year{ position:relative;}
31 .selectYearBtn{ position:absolute; top:84px; height:50px; width:20px; cursor:pointer; overflow:hidden;background:url(../images/y-bg.png) repeat; display:none;}
32 .selectYearBtn:hover{background:url(../images/y-hover.png) repeat;}
33 .selectPrevBtn{ left:0px;}
34 .selectNextBtn{ right:0px;}
35 .selectYearBtn em{ display:block; width:12px; height:22px; margin:14px 0px 0px 4px;}
36 .selectPrevBtn em{background-position:-2px -211px;}
37 .selectNextBtn em{background-position:-16px -211px;}
38 #birth-year:hover .selectYearBtn{ display:block;}
39 #disabledSelectPrevBtn,#disabledSelectNextBtn,#disabledSelectPrevBtn:hover,#disabledSelectNextBtn:hover{ cursor:default; display:none;}
40 #birth-year:hover #disabledSelectPrevBtn,#birth-year:hover #disabledSelectNextBtn{ display:none;}
41 .birth-month,.birth-days{ display:none;}
42 #birth-calendar li{-webkit-transition: all 0.2s ease-in-out; -moz-transition: all 0.2s ease-in-out; -o-transition: all 0.2s ease-in-out; -ms-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out;}
43 .selectBox{ width:184px; overflow:hidden;}
44 .selectBox .selectList{ width:378px;}
45 .selectList-s,.selectList-d{ height:1%; overflow:hidden; margin:-5px 0px 0px -5px;float:left; width:189px; padding-right:5px;}
46 .selectList-s li{float:left; display:block; background:#50c7ff; color:#fff; text-align:center; margin:5px 0px 0px 5px; width:58px; height:35px; line-height:35px; cursor:pointer; font-size:16px; font-family:Verdana,arial; font-style:italic;}
47 .selectList-s li.disabled,.selectList-s li.disabled:hover{ background:#ccc; cursor:default;}
48 .selectList-s li:hover{ color:#fff; background:#ffb547;}
49 .selectList-d li{float:left; display:block;color:#09c; background:#f8f8f8;text-align:center;cursor:pointer; margin:5px 0px 0px 5px; width:22px; height:22px; line-height:22px;  font-size:12px; font-family:Verdana,arial; font-style:italic;}
50 .selectList-d li:hover{ color:#fff; background:#50c7ff;}
51 .selectList-d li.disabled,.selectList-d li.disabled:hover{ background:#eee; cursor:default; color:#ddd;}
1 <form style="margin:10px 100px;">
2 <ul>
3     <li><label>出发日期:</label><input type="text" style="width:100px;" class="checkInDate" readonly="readonly"/><span class="weekend"></span></li>
4     <li><label>结束日期:</label><input type="text" style="width:100px;" class="checkOutDate" readonly="readonly"/><span class="weekend"></span></li>
5     <li><label>出生年月:</label><input type="text" style="width:100px;" class="checkBirthDate" readonly="readonly"/><span class="weekend"></span></li>
6 </ul>
7 </form>

 

转载于:https://www.cnblogs.com/webdesign-Jerry/archive/2013/01/24/2875719.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值