JSFiddle - React, Tailwind, and code Playground
by gotoworks510
HTML
<script src="http://kylestetz.github.io/CLNDR/js/moment.js"></script>
<script src="http://kylestetz.github.io/CLNDR/js/underscore.js"></script>
<script src="http://kylestetz.github.io/CLNDR/js/clndr.js"></script>
<div class="container">
<h3></h3>
<div class="cal1">
</div>
<div class="cal2">
<script type="text/template" id="template-calendar">
<div class="clndr-controls">
<div class="clndr-previous-button">‹</div>
<div class="month"><%= month %></div>
<div class="clndr-next-button">›</div>
</div>
<div class="clndr-grid">
<div class="days-of-the-week">
<% _.each(daysOfTheWeek, function(day) { %>
<div class="header-day"><%= day %></div>
<% }); %>
<div class="days">
<% _.each(days, function(day) { %>
<div class="<%= day.classes %>" id="<%= day.id %>"><%= day.day %></div>
<% }); %>
</div>
</div>
</div>
</script>
</div>
</div>
CSS
@import url(http://fonts.googleapis.com/css?family=Droid+Sans+Mono);
.clearfix:after {
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
.clearfix {
display: inline-block;
}
html[xmlns] .clearfix {
display: block;
}
* html .clearfix {
height: 1%;
}
.noselect {
-webkit-user-select: none;
/* Chrome/Safari */
-moz-user-select: none;
/* Firefox */
-ms-user-select: none;
/* IE10+ */
}
.cal1 {
margin: 30px auto;
max-width: 600px;
font-family: 'Droid Sans Mono';
font-size: 14px;
}
.cal1 .clndr .clndr-controls {
display: inline-block;
width: 100%;
position: relative;
margin-bottom: 10px;
}
.cal1 .clndr .clndr-controls .month {
float: left;
width: 33%;
text-align: center;
}
.cal1 .clndr .clndr-controls .clndr-control-button {
float: left;
width: 33%;
}
.cal1 .clndr .clndr-controls .clndr-control-button.rightalign {
text-align: right;
width: 34%;
}
.cal1 .clndr .clndr-controls .clndr-control-button .clndr-next-button {
cursor: pointer;
-webkit-user-select: none;
/* Chrome/Safari */
-moz-user-select: none;
/* Firefox */
-ms-user-select: none;
/* IE10+ */
}
.cal1 .clndr .clndr-controls .clndr-control-button .clndr-next-button:hover {
background: #ddd;
}
.cal1 .clndr .clndr-controls .clndr-control-button .clndr-previous-button {
cursor: pointer;
-webkit-user-select: none;
/* Chrome/Safari */
-moz-user-select: none;
/* Firefox */
-ms-user-select: none;
/* IE10+ */
}
.cal1 .clndr .clndr-controls .clndr-control-button .clndr-previous-button:hover {
background: #ddd;
}
.cal1 .clndr .clndr-table {
table-layout: fixed;
width: 100%;
}
.cal1 .clndr .clndr-table .header-days {
height: 30px;
font-size: 10px;
background: #eee;
}
.cal1 .clndr .clndr-table .header-days .header-day {
vertical-align: middle;
text-align: center;
border-left: 1px solid #ccc;
border-top: 1px solid #ccc;
color: #555;
}
.cal1 .clndr .clndr-table...
JavaScript
$(document).ready( function() {
// here's some magic to make sure the dates are happening this month.
var thisMonth = moment().format('YYYY-MM');
// Here's our events array. We could grab this via AJAX as well.
var eventArray = [
{ date: thisMonth + "-24 07:52", title: "This is an event title", url: "http://google.com", time: "7:15PM" },
{ date: thisMonth + "-28", title: "the 28th, Part 1", url: "http://www.google.com" },
{ date: thisMonth + "-28", title: "the 28th, Part 2", arbitraryObject: 42 },
{ date: thisMonth + "-16", title: "Another title", anotherObject: "clndr exposes whatever is in your event object" }
];
var clndr1 = $('.cal1').clndr({
events: eventArray,
clickEvents: {
click: function(target) {
console.log(target);
}
}
});
var clndr2 = $('.cal2').clndr({
template: $('#template-calendar').html(),
events: eventArray,
startWithMonth: moment().add('month', 0),
clickEvents: {
click: function(target) {
console.log(target);
}
}
});
// bind both clndrs to the left and right arrow keys
$(document).keydown( function(e) {
if(e.keyCode == 37) {
// left arrow
clndr1.back();
clndr2.back();
}
if(e.keyCode == 39) {
// right arrow
clndr1.forward();
clndr2.forward();
}
});
});