components/details-component/details-component--custom.html (80 lines of code) (raw):

<style> /* Styling must be provided separately. Don't use these ones; they're intentionally bad. */ .demo-section:before { color: #00A; content: 'Enlarge window to see MzpDetails.destroy'; display: block; font-weight: bold; margin-bottom: 20px; } @media (min-width: 767px) { .demo-section:before { content: 'Shrink window to see MzpDetails.init'; } } .demo-section button { border: none; background: #00A; color: #fff; font-size: 30px; } .demo-section button[aria-expanded=false]:after { content: " 👈"; } .demo-section button[aria-expanded=true]:after { content: " 👇"; } .demo-section .is-closed[aria-hidden=true] { display: none; } </style> <section class="demo-section"> <h5 class="demo-heading">Heading One</h5> <p>Proin in dapibus nulla. Nam vitae est vitae tellus mollis eleifend in eu erat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean feugiat ante porttitor purus elementum, eget vestibulum ex volutpat. Sed gravida convallis rutrum. Quisque pharetra eros eget malesuada vulputate.</p> <p>Cras maximus interdum interdum. Maecenas vitae ligula et eros porta feugiat. Nullam facilisis odio non ante varius tempor ut ac turpis.</p> <h5 class="demo-heading">Heading Two</h5> <p>Proin in dapibus nulla. Nam vitae est vitae tellus mollis eleifend in eu erat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean feugiat ante porttitor purus elementum, eget vestibulum ex volutpat. Sed gravida convallis rutrum. Quisque pharetra eros eget malesuada vulputate.</p> <h6>Sub-heading</h6> <p>Cras maximus interdum interdum. Maecenas vitae ligula et eros porta feugiat. Nullam facilisis odio non ante varius tempor ut ac turpis.</p> </section> <script src="{{ '/protocol/js/details.js' | path }}"></script> <script> (function() { 'use strict'; var _mqWide = matchMedia('(max-width: 767px)'); if (_mqWide.matches) { window.MzpDetails.init('.demo-heading', { onDetailsOpen: function(){ console.log('open'); }, onDetailsClose: function(){ console.log('close'); } }); } _mqWide.addListener(function(mq) { if (mq.matches) { window.MzpDetails.init('.demo-heading', { onDetailsOpen: function(){ console.log('open'); }, onDetailsClose: function(){ console.log('close'); } }); } else { window.MzpDetails.destroy('.demo-heading'); } }); })(); </script>