UNPKG

module-match-height

Version:
452 lines (430 loc) 26 kB
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="robots" content="noindex"> <title>matchHeight Browser Tests</title> <!-- matchHeight --> <link rel="stylesheet" href="./test.css"> <script type="text/javascript" src="../dist/module-match-height.min.js"></script> </head> <body class="test-match-height test-rows test-responsive test-border-box test-margin test-padding test-border test-hidden"> <div class="container"> <h1>matchHeight Browser Tests</h1> <div class="controls"> <input class="btn-remove" type="submit" value="remove matchHeight" id="remove-mh"> <input class="btn-remove" type="submit" value="add matchHeight" id="add-mh"> <input class="btn-remove" type="submit" value="unbind matchHeight" id="unbind-mh"> <input class="btn-remove" type="submit" value="init matchHeight" id="init-mh"> </div> <div class="items-container simple-items"> <div class="item item-0"> <h2>Lorem ipsum</h2> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam.</p> <p>Aenean semper felis ipsum, vulputate consequat dui elementum vel.</p> </div> <div class="item item-1"> <h3>Lorem ipsum dolor</h3> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis. Phasellus hendrerit erat sed porta imperdiet. Vivamus viverra ipsum tortor, et congue mauris porttitor ut.</p> </div> <div class="item item-2"> <h4>Lorem ipsum dolor sit amet.</h4> <p>Aenean semper felis ipsum, vulputate consequat dui elementum vel. Nullam odio eros, sagittis vitae lectus id, pretium viverra lectus. Etiam auctor dolor non dui ultricies pulvinar.</p> </div> <div class="item item-3"> <h3>Lorem ipsum dolor</h3> <p>Aenean semper.</p> </div> <div class="item item-4"> <h3>Lorem ipsum dolor</h3> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis.</p> </div> <div class="item item-5"> <h3>Lorem ipsum dolor</h3> <p>Aenean semper felis ipsum, vulputate consequat dui elementum vel.</p> </div> <div class="item item-6"> <h3>Lorem ipsum dolor</h3> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. </p> </div> <div class="item item-7"> <h3>Lorem ipsum dolor</h3> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam.</p> </div> </div> <div class="items-container image-items"> <div class="item item-0"> <img src="./img/800x150.png" alt="a test image"> </div> <div class="item item-1"> <img src="./img/800x180.png" alt="a test image"> </div> <div class="item item-2"> <img src="./img/800x200.png" alt="a test image"> </div> <div class="item item-3"> <img src="./img/800x220.png" alt="a test image"> </div> </div> <div class="items-container nested-items-parent"> <div class="item item-0"> <h3>Lorem ipsum dolor</h3> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam.</p> <p>Aenean semper felis ipsum, vulputate consequat dui elementum vel.</p> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis. Phasellus hendrerit erat sed porta imperdiet. Vivamus viverra ipsum tortor, et congue mauris porttitor ut.</p> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis.</p> </div> <div class="item item-1"> <div class="items-container nested-items"> <div class="item item-2"> <p>Aenean</p> </div> <div class="item item-3"> <p>Lorem</p> </div> <div class="item item-4"> <p>Phasellus</p> </div> <div class="item item-5"> <p>Aenean semper felis ipsum, vulputate consequat dui elementum vel.</p> </div> <div class="item item-6"> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. </p> </div> <div class="item item-7"> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam.</p> </div> </div> </div> </div> <div class="data-api-items"> <div class="item item-0" data-match-height="items-a"> <h3>data-match-height="items-a"</h3> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis. Phasellus hendrerit erat sed porta imperdiet. Vivamus viverra ipsum tortor, et congue mauris porttitor ut.</p> </div> <div class="item item-1" data-match-height="items-a"> <h3>data-match-height="items-a"</h3> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis.</p> </div> <div class="item item-2" data-mh="items-b"> <h3>data-mh="items-b"</h3> <p>In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis.</p> </div> <div class="item item-3" data-mh="items-b"> <h3>data-mh="items-b"</h3> <p>Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis.</p> </div> </div> <div class="target-items"> <div class="item item-0"> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam.</p> <p>Aenean semper felis ipsum, vulputate consequat dui elementum vel.</p> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis. Phasellus hendrerit erat sed porta imperdiet. Vivamus viverra ipsum tortor, et congue mauris porttitor ut.</p> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis.</p> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis. Phasellus hendrerit erat sed porta imperdiet. Vivamus viverra ipsum tortor, et congue mauris porttitor ut.</p> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis.</p> </div> <div class="item item-1" id="target-item-1"> <h3>Target</h3> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis.</p> </div> <div class="item item-2"> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis. Phasellus hendrerit erat sed porta imperdiet. Vivamus viverra ipsum tortor, et congue mauris porttitor ut.</p> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis. Phasellus hendrerit erat sed porta imperdiet. Vivamus viverra ipsum tortor, et congue mauris porttitor ut.</p> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis.</p> </div> <div class="item item-3"> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam.</p> <p>Aenean semper felis ipsum, vulputate consequat dui elementum vel.</p> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis.</p> </div> </div> <div class="items-container fixed-items"> <div class="item item-0"> <p>Fixed height</p> </div> <div class="item item-1"> <p>Fixed height</p> </div> <div class="item item-2"> <p>Fixed height</p> </div> <div class="item item-3"> <p>Fixed height</p> </div> </div> <div class="items-container inline-block-items"> <div class="item item-0"> <p>display: inline-block</p> </div> <div class="item item-1"> <p>display: inline-block</p> </div> <div class="item item-2"> <p>display: inline-block</p> </div> <div class="item item-3"> <p>display: inline-block</p> </div> <div class="item item-4"> <p>display: inline-block</p> </div> <div class="item item-5"> <p>display: inline-block</p> </div> <div class="item item-6"> <p>display: inline-block</p> </div> <div class="item item-7"> <p>display: inline-block</p> </div> </div> <div class="items-container inline-flex-items"> <div class="item item-0"> <p>display: inline-flex</p> </div> <div class="item item-1"> <p>display: inline-flex</p> </div> <div class="item item-2"> <p>display: inline-flex</p> </div> <div class="item item-3"> <p>display: inline-flex</p> </div> <div class="item item-4"> <p>display: inline-flex</p> </div> <div class="item item-5"> <p>display: inline-flex</p> </div> <div class="item item-6"> <p>display: inline-flex</p> </div> <div class="item item-7"> <p>display: inline-flex</p> </div> </div> <div class="items-container hidden-items"> <div class="item item-0"> <p>display: none</p> </div> <div class="item item-1"> <p>visibility: hidden</p> </div> <div class="item item-2"> <div class="items-container"> <div class="item item-0"> <p>parent display: none</p> </div> <div class="item item-0"> <p>parent display: none</p> </div> </div> </div> <div class="item item-3"> <div class="items-container"> <div class="item item-1"> <p>parent visibility: hidden</p> </div> <div class="item item-1"> <p>parent visibility: hidden</p> </div> </div> </div> </div> <div class="items-container items-with-float"> <div class="item item-0"> <div class="float-element"></div> <h3>Floating element</h3> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam.</p> <p>Aenean semper felis ipsum, vulputate consequat dui elementum vel.</p> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis. Phasellus hendrerit erat sed porta imperdiet. Vivamus viverra ipsum tortor, et congue mauris porttitor ut.</p> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis.</p> </div> <div class="item item-1"> <h3>Lorem ipsum dolor</h3> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis.</p> </div> <div class="item item-2"> <h3>Lorem ipsum dolor</h3> <p>Aenean semper felis ipsum, vulputate consequat dui elementum vel.</p> </div> <div class="item item-3"> <h3>Lorem ipsum dolor</h3> <p>Aenean semper felis ipsum, vulputate consequat dui elementum vel. Nullam odio eros, sagittis vitae lectus id, pretium viverra lectus. Etiam auctor dolor non dui ultricies pulvinar.</p> </div> <div class="item item-4"> <h3>Lorem ipsum dolor</h3> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam.</p> </div> </div> <div class="property-items"> <div class="item item-0"> <h2>min-height</h2> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam.</p> <p>Aenean semper felis ipsum, vulputate consequat dui elementum vel.</p> </div> <div class="item item-1"> <h3>min-height</h3> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis. Phasellus hendrerit erat sed porta imperdiet. Vivamus viverra ipsum tortor, et congue mauris porttitor ut.</p> </div> <div class="item item-2"> <h4>min-height</h4> <p>Aenean semper felis ipsum, vulputate consequat dui elementum vel. Nullam odio eros, sagittis vitae lectus id, pretium viverra lectus. Etiam auctor dolor non dui ultricies pulvinar.</p> </div> <div class="item item-3"> <h3>min-height</h3> <p>Aenean semper.</p> </div> </div> <div class="items-container inline-style-items"> <div class="item item-0" style="display: inline-block"> <h2>inline style</h2> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam.</p> <p>Aenean semper felis ipsum, vulputate consequat dui elementum vel.</p> </div> <div class="item item-1" style="position: relative"> <h3>inline style</h3> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis. Phasellus hendrerit erat sed porta imperdiet. Vivamus viverra ipsum tortor, et congue mauris porttitor ut.</p> </div> <div class="item item-2" style="min-height: 10px"> <h4>inline style</h4> <p>Aenean semper felis ipsum, vulputate consequat dui elementum vel. Nullam odio eros, sagittis vitae lectus id, pretium viverra lectus. Etiam auctor dolor non dui ultricies pulvinar.</p> </div> <div class="item item-3" style="padding: 15px"> <h3>inline style</h3> <p>Aenean semper.</p> </div> </div> <div class="items-container remove-items"> <div class="item item-0" id="remove-item-0"> <h2>removed</h2> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam.</p> <p>Aenean semper felis ipsum, vulputate consequat dui elementum vel.</p> </div> <div class="item item-1"> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis. Phasellus hendrerit erat sed porta imperdiet. Vivamus viverra ipsum tortor, et congue mauris porttitor ut.</p> </div> <div class="item item-2"> <p>Aenean semper felis ipsum, vulputate consequat dui elementum vel. Nullam odio eros, sagittis vitae lectus id, pretium viverra lectus. Etiam auctor dolor non dui ultricies pulvinar.</p> </div> <div class="item item-3"> <p>Aenean semper.</p> </div> </div> <div class="items-container remove-items2"> <div class="item item-0 remove-item"> <h2>removed</h2> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam.</p> <p>Aenean semper felis ipsum, vulputate consequat dui elementum vel.</p> </div> <div class="item item-1 remove-item"> <h2>removed</h2> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis. Phasellus hendrerit erat sed porta imperdiet. Vivamus viverra ipsum tortor, et congue mauris porttitor ut.</p> </div> <div class="item item-2"> <p>Aenean semper felis ipsum, vulputate consequat dui elementum vel. Nullam odio eros, sagittis vitae lectus id, pretium viverra lectus. Etiam auctor dolor non dui ultricies pulvinar.</p> </div> <div class="item item-3"> <p>Aenean semper.</p> </div> </div> <div class="items-container data-api-items2"> <div class="item item-0" data-same-height="items-a"> <h3>data-same-height="items-a"</h3> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis. Phasellus hendrerit erat sed porta imperdiet. Vivamus viverra ipsum tortor, et congue mauris porttitor ut.</p> </div> <div class="item item-1" data-same-height="items-a"> <h3>data-same-height="items-a"</h3> <p>Phasellus ut nibh fermentum, vulputate urna vel, semper diam. Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis.</p> </div> <div class="item item-2" data-same-height="items-b"> <h3>data-same-height="items-b"</h3> <p>In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis.</p> </div> <div class="item item-3" data-same-height="items-b"> <h3>data-same-height="items-b"</h3> <p>Nunc sollicitudin felis ut pellentesque fermentum. In erat mi, pulvinar sit amet tincidunt vitae, gravida id felis.</p> </div> </div> </div> <div id='results'></div> <script type="text/javascript"> var elements = []; const containers = document.querySelectorAll(".simple-items"); containers.forEach((container) => { var el = new MatchHeight(container, {elements: '.item'}); elements.push(el); }); const containers1 = document.querySelectorAll(".items-container"); containers1.forEach((container) => { var el = new MatchHeight(container, {elements: '.item'}); elements.push(el); }); const containers2 = document.querySelectorAll(".property-items"); containers2.forEach((container) => { var el = new MatchHeight(container, {elements: '.item', property: 'min-height'}); elements.push(el); }); const containers3 = document.querySelectorAll(".target-items"); containers3.forEach((container) => { var el = new MatchHeight(container, {elements: '.item-0, .item-2, .item-3', target: document.getElementById("target-item-1")}); elements.push(el); }); const containers4 = document.querySelectorAll(".data-api-items"); containers4.forEach((container) => { var el = new MatchHeight(container); elements.push(el); }); const containers5 = document.querySelectorAll(".remove-items"); containers5.forEach((container) => { var el = new MatchHeight(container, {elements: '.item', remove: document.getElementById("remove-item-0")}); elements.push(el); }); const containers6 = document.querySelectorAll(".remove-items2"); containers6.forEach((container) => { var el = new MatchHeight(container, {elements: '.item', remove: document.querySelectorAll(".remove-item")}); elements.push(el); }); const containers7 = document.querySelectorAll(".data-api-items2"); containers7.forEach((container) => { var el = new MatchHeight(container, {attributeName: 'data-same-height'}); elements.push(el); }); document.getElementById("remove-mh").addEventListener('click', function(event) { elements.forEach((el) => { el._remove(); }); }); document.getElementById("add-mh").addEventListener('click', function(event) { elements.forEach((el) => { el._applyAll(); /*el._apply(); //appply only for rights element, this'is only a test el._applyDataApi('data-match-height'); el._applyDataApi('data-mh'); el._applyDataApi('data-same-height');*/ }); }); document.getElementById("unbind-mh").addEventListener('click', function(event) { elements.forEach((el) => { el._unbind(); }); }); document.getElementById("init-mh").addEventListener('click', function(event) { elements.forEach((el) => { el._init(); el._applyAll(); /*el._apply(); //appply only for rights element, this'is only a test el._applyDataApi('data-match-height'); el._applyDataApi('data-mh'); el._applyDataApi('data-same-height');*/ }); }); </script> </body> </html>