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">&lsaquo;</div>
          <div class="month"><%= month %></div>
          <div class="clndr-next-button">&rsaquo;</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();
    }
  });

});