JSFiddle - React, Tailwind, and code Playground
HTML
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.6/css/materialize.min.css">
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.6/js/materialize.min.js"></script>
<div class="card">
<div class="card-image waves-effect waves-block waves-light">
<img class="activator" src="http://materializecss.com/images/office.jpg">
</div>
<div class="card-content">
<span class="card-title activator grey-text text-darken-4">Card Title</span>
<i class="material-icons right dropdown-button" data-activates="dropdown1">list</i>
</div>
<div class="card-reveal">
<span class="card-title grey-text text-darken-4">Card Title<i class="material-icons right listExpand">close</i></span>
<p>Here is some more information about this product that is only revealed once clicked on.</p>
</div>
<ul id='dropdown1' class='dropdown-content'>
<li><a href="#!">one</a></li>
<li><a href="#!">two</a></li>
<li class="divider"></li>
<li><a href="#!">three</a></li>
</ul>
</div>
CSS
.card {
width: 60%;
}
.card--visible-overflow {
overflow: visible !important;
}
@font-face {
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
src: local('Material Icons'), local('MaterialIcons-Regular'), url(https://fonts.gstatic.com/s/materialicons/v7/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2) format('woff2'), url(https://fonts.gstatic.com/s/materialicons/v7/2fcrYFNaTjcS6g4U3t-Y5ewrjPiaoEww8AihgqWRJAo.woff) format('woff');
}
.material-icons {
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 24px;
line-height: 1;
letter-spacing: normal;
text-transform: none;
display: inline-block;
word-wrap: normal;
-moz-font-feature-settings: 'liga';
-moz-osx-font-smoothing: grayscale;
}
JavaScript
$(document)
// remove the visibility class from all cards
// if the target of the click event is not a dropdown button
.on('click', function(e) {
if (! $(e.target).hasClass('dropdown-button')) {
$('.card').removeClass('card--visible-overflow');
}
})
// add the visibility class to the closest card
// by clicking on each dropdown buttons inside the cards
.on('click', '.card .dropdown-button', function() {
var $card = $(this).closest('.card'),
openedClass = 'card--visible-overflow',
dropDownIsOpened = $card.hasClass(openedClass);
if (! dropDownIsOpened) {
$card.addClass(openedClass);
}
});