以下是 jQuery+CSS3日历事件凸显特效 的示例演示效果:
部分效果截图:
HTML代码(index.html):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="style.css">
<title>Animated CSS3 Calendar</title>
<script src="js/jquery-latest.js"></script>
<script type="text/javascript">
function initMenu() {
var block = $(".day");
block.addClass("clickable");
block.hover(function () { window.status = $(this) }, function () { window.status = "" });
$('.open').hide();
block.click(
function () {
$(this).parents('div:eq(0)').find('.open').slideToggle('fast');
}
);
}
$(document).ready(function () { initMenu(); });
</script>
</head>
<body>
<div id="calendar">
<div id="calcontainer">
<div id="calheader">
</div>
<div id="daysweek">
<div class="dayweek"><p>Monday</p></div>
<div class="dayweek"><p>Tuesday</p></div>
<div class="dayweek"><p>Wednesday</p></div>
<div class="dayweek"><p>Thursday</p></div>
<div class="dayweek"><p>Friday</p></div>
<div class="dayweek"><p>Saturday</p></div>
<div class="dayweek brn"><p>Sunday</p></div>
</div>
<div id="daysmonth">
<!---------------------------------------- week 1 ---------------------------------------->
<div class="week">
<div class="day">
<div class="daybar"><p>31</p></div>
<div class="dots">
<ul>
<li class="yellow"></li>
<li class="green"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="yellow l2 a9"><p>09:00 History: examination</p></li>
<li class="green l2 a9"><p>19:00 Camp meeting</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>1</p></div>
<div class="dots">
<ul>
<li class="yellow"></li>
<li class="yellow"></li>
<li class="red"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="yellow l1 a13"><p>13:00 English</p></li>
<li class="yellow l1 a1"><p>15:00 Economy</p></li>
<li class="red l2 a3"><p>19:00 Practice</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>2</p></div>
<div class="dots">
<ul>
<li class="blue"></li>
<li class="green"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="blue l3 a14"><p>14:00 Shopping Mall Concert</p></li>
<li class="green l3 a3"><p>20:00 Scout meeting: activity brain storm</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>3</p></div>
<div class="dots">
<ul>
<li class="red"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="red l2 a19"><p>19:00 Practice</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>4</p></div>
<div class="dots">
<ul></ul>
</div>
<!-- slide open -->
<div class="open">
<ul></ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>5</p></div>
<div class="dots">
<ul>
<li class="red"></li>
<li class="blue"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="red l3 a13"><p>13:00 Competition: Red Hawks - Yellow Parrots</p></li>
<li class="blue l3 a5"><p>21:00 After Halloween party</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day brn">
<div class="daybar"><p>6</p></div>
<div class="dots">
<ul>
<li class="yellow"></li>
<li class="green"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="yellow l2 a11"><p>11:00 studying</p></li>
<li class="green l3 a1"><p>14:00 Stratego-game</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
</div>
<!---------------------------------------- week 2 ---------------------------------------->
<div class="week">
<div class="day">
<div class="daybar"><p>7</p></div>
<div class="dots">
<ul>
<li class="yellow"></li>
<li class="green"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="yellow l1 a13"><p>13:00 Math</p></li>
<li class="green l2 a5"><p>19:00 gathering</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>8</p></div>
<div class="dots">
<ul>
<li class="red"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="red l2 a19"><p>19:00 Practice</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>9</p></div>
<div class="dots">
<ul>
<li class="yellow"></li>
<li class="yellow"></li>
<li class="green"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="yellow l1 a8"><p>08:00 Biology</p></li>
<li class="yellow l1 a1"><p>10:00 ICT</p></li>
<li class="green l3 a9"><p>20:00 Cookie bake-off</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>10</p></div>
<div class="dots">
<ul>
<li class="red"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="red l2 a19"><p>19:00 Practice</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>11</p></div>
<div class="dots">
<ul>
<li class="yellow"></li>
<li class="blue"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="yellow l3 a10"><p>10:00 Athletics</p></li>
<li class="blue l3 a4"><p>17:00 Date with ...</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>12</p></div>
<div class="dots">
<ul>
<li class="red"></li>
<li class="blue"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="red l3 a13"><p>13:00 Competition: Red Hawks - Blue Foxes</p></li>
<li class="blue l4 a2"><p>18:00 Cinema: Tin Tin </p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day brn">
<div class="daybar"><p>13</p></div>
<div class="dots">
<ul>
<li class="yellow"></li>
<li class="green"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="yellow l2 a11"><p>11:00 studying</p></li>
<li class="green l3 a1"><p>14:00 Door 2 Door cookies</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
</div>
<!---------------------------------------- week 3 ---------------------------------------->
<div class="week">
<div class="day big">
<div class="daybar"><p>14</p></div>
<div class="dots">
<ul>
<li class="yellow"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="yellow l2 a9"><p>09:00 History project</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day big">
<div class="daybar"><p>15</p></div>
<div class="dots">
<ul>
<li class="yellow"></li>
<li class="red"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="yellow l1 a13"><p>13:00 English task</p></li>
<li class="red l2 a5"><p>19:00 Practice</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day today big">
<div class="daybar"><p>16</p></div>
<div class="dots">
<ul>
<li class="blue"></li>
<li class="green"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="blue l2 a17"><p>17:00 iPhone delivery</p></li>
<li class="green l3 a1"><p>20:00 gathering</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day big">
<div class="daybar"><p>17</p></div>
<div class="dots">
<ul>
<li class="red"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="red l2 a19"><p>19:00 Practice</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day big">
<div class="daybar"><p>18</p></div>
<div class="dots">
<ul>
<li class="yellow"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="yellow l2 a8"><p>08:00 Spanish</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day big">
<div class="daybar"><p>19</p></div>
<div class="dots">
<ul>
<li class="red"></li>
<li class="blue"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="red l3 a13"><p>13:00 Competition: Green Snakes - Red Hawks</p></li>
<li class="blue l4 a4"><p>20:00 Snowparty</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day big brn">
<div class="daybar"><p>20</p></div>
<div class="dots">
<ul>
<li class="green"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="green l5 a14"><p>14:00 Survival</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
</div>
<!---------------------------------------- week 4 ---------------------------------------->
<div class="week">
<div class="day">
<div class="daybar"><p>21</p></div>
<div class="dots">
<ul>
<li class="yellow"></li>
<li class="green"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="yellow l1 a13"><p>13:00 Math test</p></li>
<li class="green l2 a5"><p>19:00 gathering</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>22</p></div>
<div class="dots">
<ul>
<li class="red"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="red l2 a19"><p>19:00 Practice</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>23</p></div>
<div class="dots">
<ul>
<li class="yellow"></li>
<li class="yellow"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="yellow l2 a8"><p>08:00 English reading</p></li>
<li class="yellow l1 a1"><p>11:00 Physics task</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>24</p></div>
<div class="dots">
<ul>
<li class="red"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="red l2 a19"><p>19:00 Practice</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>25</p></div>
<div class="dots">
<ul>
<li class="blue"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="blue l3 a20"><p>20:00 Zoo Night opening!</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>26</p></div>
<div class="dots">
<ul>
<li class="red"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="red l3 a13"><p>13:00 Competition: Red Hawks - Black Ravens</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day brn">
<div class="daybar"><p>27</p></div>
<div class="dots">
<ul>
<li class="yellow"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="yellow l3 a9"><p>09:00 studying</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
</div>
<!---------------------------------------- week 5 ---------------------------------------->
<div class="week">
<div class="day">
<div class="daybar"><p>28</p></div>
<div class="dots">
<ul>
<li class="yellow"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="yellow l2 a13"><p>13:00 Math test</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>29</p></div>
<div class="dots">
<ul>
<li class="red"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="red l2 a19"><p>19:00 Practice</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>30</p></div>
<div class="dots">
<ul>
<li class="green"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="green l3 a20"><p>20:00 gathering</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>1</p></div>
<div class="dots">
<ul>
<li class="red"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="red l2 a19"><p>19:00 Practice</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>2</p></div>
<div class="dots">
<ul></ul>
</div>
<!-- slide open -->
<div class="open">
<ul></ul>
</div>
<!-- slide closed -->
</div>
<div class="day">
<div class="daybar"><p>3</p></div>
<div class="dots">
<ul>
<li class="blue"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="blue l3 a10"><p>10:00 Christmas decoration</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
<div class="day brn">
<div class="daybar"><p>4</p></div>
<div class="dots">
<ul>
<li class="green"></li>
</ul>
</div>
<!-- slide open -->
<div class="open">
<ul>
<li class="green l3 a20"><p>20:00 Quiz night</p></li>
</ul>
</div>
<!-- slide closed -->
</div>
</div>
<!---------------------------------------- week 5 end ---------------------------------------->
</div>
</div>
<div id="calcat">
<div class="caldot blue"></div><p>Personal</p>
<div class="caldot yellow"></div><p>School</p>
<div class="caldot green"></div><p>Scouts</p>
<div class="caldot red"></div><p>Volleyball</p><br>
</div>
</div>
</body>
</html>
CSS代码(style.css):
/**************************** CSS Reset ****************************/
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;}
body{line-height:1;}
ol,ul{list-style:none;}
blockquote,qblockquote:before,blockquote:after,q:before,q:after{content:'';content:none;}
a{color:#487697;text-decoration:none;}
:focus{outline:0;}
ins{text-decoration:none;}
del{text-decoration:line-through;}
table{border-collapse:collapse;border-spacing:0;}
/**************************** General ****************************/
a:hover{text-decoration:underline;}
p{color:#555;font-size:11px;}
body{font-family:Lucida Grande;background:#fff;}
/**************************** Calendar ****************************/
#calendar{margin:0 auto;padding-top:25px;width:760px;text-align:center;position:relative;}
#calheader{width:100%;height:30px;text-align:center;}
#calheader h2{margin-top:15px;}
#calcontainer{float:left;margin-bottom:10px;}
#daysmonth{clear:both;}
.dayweek{width:107px;height:30px;float:left;border-right:1px solid #e5e5e5;}
.dayweek p{display:block;text-align:center;font-size:10px;line-height:31px;text-shadow:0 1px 0 #ffffff;}
.week{overflow:auto;border-top:1px solid #c2c2c2;}
.weeku{overflow:auto;border-top:1px solid #c2c2c2;border-bottom:1px solid #e5e5e5;}
.today{background:#fffcdf;border-right:1px solid #e5e5e5;}
.today .daybar{background:#fffac1;}
.day{width:107px;float:left;border-right:1px solid #e5e5e5;}
.brn{border-right:none;}
.bun{border-bottom:none;}
.day:hover{background:#e9f0f8;cursor:pointer;}
.daybar{width:100%;float:left;background:#f3f3f3;}
.daybar p{margin-left:5px;margin-top:3px;margin-bottom:3px;font-size:10px;font-weight:400;color:#969696;text-shadow:0 1px 0 #ffffff;}
.dots{width:100%;height:35px;clear:both;}
.dots ul{text-align:center;white-space:nowrap;overflow:hidden;}
.dots ul li{margin-top:10px;display:inline-block;-webkit-border-radius:14px;width:12px;height:12px;}
.big{width:107px;float:left;}
.big:hover{background:#e9f0f8;cursor:pointer;}
.big .dots{height:65px;}
.big .dots li{margin-top:25px;}
/**************************** Events when slide is open ****************************/
.open{height:480px;border-top:1px solid #e5e5e5;float:left;clear:both;}
.open li{-webkit-border-radius:10px;margin-left:1px;margin-right:1px;}
.open li p{width:93px;margin-top:5px;margin-left:6px;margin-right:6px;line-height:12px;font-size:10px;color:#ffffff;overflow:hidden;}
.open li:hover{cursor:pointer;}
/**************************** Colors ****************************/
.none{background:#d6d6d6;}
.none:hover{background:#dfdfdf;}
.blue{background:#5496dd;}
.blue:hover{background:#5c9ef9;}
.red{background:#ff454b;}
.red:hover{background:#ff6164;}
.yellow{background:#ffac4d;}
.yellow:hover{background:#ffbd6a;}
.green{background:#94e354;}
.green:hover{background:#98e857;}
/**************************** Duration of an event ****************************/
.l1{height:20px;overflow:hidden;}
.l2{height:40px;overflow:hidden;}
.l3{height:60px;overflow:hidden;}
.l4{height:80px;overflow:hidden;}
.l5{height:100px;overflow:hidden;}
.l6{height:120px;}
.l7{height:140px;}
.l8{height:160px;}
.l9{height:180px;}
.l10{height:200px;}
.l11{height:220px;}
.l12{height:240px;}
.l13{height:260px;}
.l14{height:280px;}
.l15{height:300px;}
.l16{height:320px;}
.l17{height:340px;}
.l18{height:360px;}
.l19{height:380px;}
.l20{height:400px;}
.l21{height:420px;}
.l22{height:440px;}
.l23{height:460px;}
.l24{height:480px;}
/**************************** Amount of hours between previous event or start of the day ****************************/
.a1{margin-top:20px;}
.a2{margin-top:40px;}
.a3{margin-top:60px;}
.a4{margin-top:80px;}
.a5{margin-top:100px;}
.a6{margin-top:120px;}
.a7{margin-top:140px;}
.a8{margin-top:160px;}
.a9{margin-top:180px;}
.a10{margin-top:200px;}
.a11{margin-top:220px;}
.a12{margin-top:240px;}
.a13{margin-top:260px;}
.a14{margin-top:280px;}
.a15{margin-top:300px;}
.a16{margin-top:320px;}
.a17{margin-top:340px;}
.a18{margin-top:360px;}
.a19{margin-top:380px;}
.a20{margin-top:400px;}
.a21{margin-top:420px;}
.a22{margin-top:440px;}
.a23{margin-top:460px;}
.a24{margin-top:480px;}
/**************************** Legend ****************************/
#calcat{float:right;margin-bottom:20px;margin-right:5px;}
#calcat p{margin-top:4px;float:left;}
.caldot{float:left;width:12px;height:12px;border-radius:20px;margin-left:10px;margin-top:4px;margin-right:8px;}