Smooth CSS/jQuery Navigation with Chart.js Canvas
A Pen by Oliver Knoblich on CodePen.
| .wrapper | |
| .nav | |
| .title Last Hour | |
| .chart#p1 | |
| %canvas#c1 | |
| .title Navigation | |
| .link.i1.active Dashboard | |
| .link.i2 Statistics | |
| .link.i3 Roadmap | |
| .link.i4 Milestones | |
| .link.i5 Tickets | |
| .title Account | |
| .link.i6 Search | |
| .link.i7 Settings | |
| .link.i8 Logout | |
| .main | |
| .desc | |
| Live Chart Navigation |
| $(document).ready(function() { | |
| $('.link').on('click', function() { | |
| $('.link').removeClass('active'); | |
| $(this).toggleClass('active'); | |
| }); | |
| }); | |
| var c1 = document.getElementById("c1"); | |
| var parent = document.getElementById("p1"); | |
| c1.width = parent.offsetWidth; | |
| c1.height = parent.offsetHeight; | |
| var data1 = { | |
| labels : ["00","10","20","30","40","50","60"], | |
| datasets : [ | |
| { | |
| fillColor : "rgba(255,255,255,.1)", | |
| strokeColor : "rgba(255,255,255,1)", | |
| pointColor : "#0af", | |
| pointStrokeColor : "rgba(255,255,255,1)", | |
| data : [150,200,235,290,300,350, 450] | |
| } | |
| ] | |
| } | |
| var options1 = { | |
| scaleFontColor : "rgba(255,255,255,1)", | |
| scaleLineColor : "rgba(255,255,255,1)", | |
| scaleGridLineColor : "transparent", | |
| bezierCurve : false, | |
| scaleOverride : true, | |
| scaleSteps : 5, | |
| scaleStepWidth : 100, | |
| scaleStartValue : 0 | |
| } | |
| new Chart(c1.getContext("2d")).Line(data1,options1) |
| <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> | |
| <script src="//cdnjs.cloudflare.com/ajax/libs/Chart.js/0.2.0/Chart.min.js"></script> |
| @import url('http://fonts.googleapis.com/css?family=Open+Sans:300,400,700'); | |
| @import url('http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css'); | |
| $w: #eee; | |
| $c: #4a6a8a; | |
| $c2: #0af; | |
| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| :before, :after { | |
| content: ''; | |
| display: block; | |
| position: absolute; | |
| box-sizing: border-box; | |
| } | |
| html, body { | |
| height: 100%; | |
| } | |
| body { | |
| font: 16px/1 'Open Sans', sans-serif; | |
| color: #777; | |
| background: $w; | |
| } | |
| .wrapper { | |
| display: flex; | |
| min-height: 100%; | |
| } | |
| .main { | |
| flex: 1; | |
| box-shadow: 0 0 5px rgba(0,0,0,.8); | |
| } | |
| .nav { | |
| width: 230px; | |
| background: $c; | |
| } | |
| .link { | |
| position: relative; | |
| display: block; | |
| padding-left: 60px; | |
| height: 40px; | |
| line-height: 40px; | |
| font-size: 14px; | |
| font-weight: 700; | |
| color: $w; | |
| &:before { | |
| top: 12px; | |
| left: 23px; | |
| font: 16px fontawesome; | |
| } | |
| &:hover { | |
| background: darken($c, 4%); | |
| } | |
| &.active { | |
| background: darken($c, 8%); | |
| box-shadow: inset 5px 0 0 $c2; | |
| } | |
| &.i1:before { content: '\f00a'; } | |
| &.i2:before { content: '\f012'; } | |
| &.i3:before { content: '\f018'; } | |
| &.i4:before { content: '\f024'; } | |
| &.i5:before { content: '\f08d'; } | |
| &.i6:before { content: '\f002'; } | |
| &.i7:before { content: '\f085'; } | |
| &.i8:before { content: '\f08b'; } | |
| cursor: pointer; | |
| transition: .2s all; | |
| } | |
| .title { | |
| height: 40px; | |
| line-height: 40px; | |
| margin: 10px 0; | |
| padding: 0 22px; | |
| text-transform: uppercase; | |
| color: lighten($c, 20%); | |
| background: darken($c, 4%); | |
| } | |
| .chart { | |
| width: 210px; | |
| margin: 0 auto; | |
| } | |
| .desc { | |
| position: absolute; | |
| top: 50%; | |
| left: 280px; | |
| font-size: 50px; | |
| font-weight: 300; | |
| margin-top: -30px; | |
| } |