Testing panel slide
HTML
<body>
<div class="spot-journey-wrapper">
<div class="tile dynamic-height">
<div class="spot-journey-container">
<div class="journey-stage">
<span class="journey-icon"></span>
<h3>Booking</h3>
<div class="journey-score-circle">
<div class="score">
<span>50%</span>
</div>
</div>
</div>
<div class="divider"></div>
<div class="journey-stage">
<span class="journey-icon"></span>
<h3>Online check in</h3>
<div class="journey-score-circle">
<div class="score">
<span>100%</span>
</div>
</div>
</div>
<div class="divider"></div>
<div class="journey-stage">
<span class="journey-icon"></span>
<h3>Bag drop</h3>
<div class="journey-score-circle">
<div class="score">
<span>50%</span>
</div>
</div>
</div>
</div>
</div>
<div id="journey-trend-panel" class="tile">
<div class="grid-item-content">
<button type="button" class="close" title="Close">
<span class="lnr lnr-cross"></span>
</button> Chart ID & filter for journey stage clicked
</div>
</div>
</div>
</body>
CSS
body {
background: #333;
}
.spot-journey-wrapper.grid-item-content {
padding: 30px 0 15px;
}
.spot-journey-container {
width: 100%;
display: flex;
align-items: flex-end;
justify-content: center;
}
.spot-journey-container .journey-stage {
width: 7em;
margin-top: 0.6em;
height: 100%;
text-align: center;
}
.spot-journey-container .journey-score-circle {
height: 7em;
width: 7em;
margin: 0 auto;
border-radius: 50%;
border: 2px solid orange;
background-color: white;
cursor: pointer;
color: orange;
}
.journey-score-circle::hover {
background-color: orange;
color: white;
transition: all 0.2s ease;
}
.journey-score-circle.journey-score-selected {
background-color: orange !important;
color: white !important;
}
.score {
height: 100%;
display: flex;
align-items: center;
justify-content: center;
font-size: 2em;
}
.divider {
flex-grow: 1;
align-self: center;
height: 0;
margin-top: 7em;
border-bottom: 2px solid white;
border-right: none;
z-index: 2;
}
#journey-trend-panel {
display: none;
background: white;
width: 200px;
height: 100px;
top: 0;
}
.journey-trend-panel.close {
color: orange;
font-size: 2em;
}
JavaScript
// Open journey trend panel for spot journeys
$('body').on('click', '.spot-journey-wrapper .journey-score-circle', function(e) {
var trendPanel = $('.spot-journey-wrapper #journey-trend-panel');
var journeyStages = $(this).parent().siblings('.journey-stage');
// Slide down trend panel and add score selected class
$(this).addClass('journey-score-selected');
journeyStages.find('.journey-score-selected').removeClass('journey-score-selected');
trendPanel.slideDown();
// Scroll down to slide out panel for mobile
var pageWidth = $(window).width();
if (pageWidth < 768) {
$('html, body').animate({
scrollTop: trendPanel.offset().top
}, 600);
}
});
// Slide up journey trend panel on clicking close
$('body').on('click', '#journey-trend-panel .close', function(e) {
$('.spot-journey-wrapper #journey-trend-panel').slideUp();
$('.journey-score-circle').removeClass('journey-score-selected');
});