Created
October 8, 2014 12:24
-
-
Save heracek/332f43cbd664d6c0e01a to your computer and use it in GitHub Desktop.
Show/Hide for AsciiDoctor checklists in pure JS and CSS // source http://jsbin.com/situqe/2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta name="description" content="Show/Hide for AsciiDoctor checklists in pure JS and CSS" /> | |
<meta charset="utf-8"> | |
<title>JS Bin</title> | |
<style id="jsbin-css"> | |
.hide-me > ul > li:nth-child(n + 2), | |
.hide-me > ul > li:first-child > .checklist { | |
display: none; | |
} | |
.hide-me.show-me > ul > li:nth-child(n + 2), | |
.hide-me.show-me > ul > li:first-child > .checklist { | |
display: block; | |
} | |
.hide-me-float-right { | |
float: right; | |
color: blue; | |
text-decoration: underline; | |
} | |
</style> | |
</head> | |
<body> | |
<div class="ulist checklist hide-me"> | |
<ul class="checklist"> | |
<li> | |
<p>✓ <strong>reset</strong></p> | |
<div class="ulist checklist"> | |
<ul class="checklist"> | |
<li> | |
<p>✓ page titles</p> | |
</li> | |
<li> | |
<p>✓ contact form</p> | |
</li> | |
<li> | |
<p>✓ newsletter form</p> | |
</li> | |
<li> | |
<p>✓ 404, 500, 403?</p> | |
</li> | |
<li> | |
<p>✓ no-js version</p> | |
</li> | |
<li> | |
<p>✓ old pages redirects</p> | |
</li> | |
<li> | |
<p>✓ google analytics</p> | |
</li> | |
<li> | |
<p>✓ robots.txt</p> | |
</li> | |
</ul> | |
</div> | |
</li> | |
<li> | |
<p>✓ <strong>pripominky 29.9.14</strong></p> | |
<div class="ulist checklist"> | |
<ul class="checklist"> | |
<li> | |
<p>✓ mobil</p> | |
<div class="ulist checklist"> | |
<ul class="checklist"> | |
<li> | |
<p>✓ set new min-width for body</p> | |
</li> | |
<li> | |
<p>✓ opravit text pres sebe</p> | |
</li> | |
<li> | |
<p>✓ vypnout parallax</p> | |
</li> | |
</ul> | |
</div> | |
</li> | |
</ul> | |
</div> | |
</li> | |
<li> | |
<p>✓ <strong>pripominky 6.10.14</strong></p> | |
<div class="ulist checklist"> | |
<ul class="checklist"> | |
<li> | |
<p>✓ A pak by to chtělo doladit to cukání, když se jede kolečkem na myši</p> | |
</li> | |
</ul> | |
</div> | |
</li> | |
</ul> | |
</div> | |
<hr> | |
<div class="ulist checklist hide-me"> | |
<ul class="checklist"> | |
<li> | |
<p>✓ <strong>reset</strong></p> | |
<div class="ulist checklist"> | |
<ul class="checklist"> | |
<li> | |
<p>✓ page titles</p> | |
</li> | |
<li> | |
<p>✓ contact form</p> | |
</li> | |
<li> | |
<p>✓ newsletter form</p> | |
</li> | |
<li> | |
<p>✓ 404, 500, 403?</p> | |
</li> | |
<li> | |
<p>✓ no-js version</p> | |
</li> | |
<li> | |
<p>✓ old pages redirects</p> | |
</li> | |
<li> | |
<p>✓ google analytics</p> | |
</li> | |
<li> | |
<p>✓ robots.txt</p> | |
</li> | |
</ul> | |
</div> | |
</li> | |
<li> | |
<p>✓ <strong>pripominky 29.9.14</strong></p> | |
<div class="ulist checklist"> | |
<ul class="checklist"> | |
<li> | |
<p>✓ mobil</p> | |
<div class="ulist checklist"> | |
<ul class="checklist"> | |
<li> | |
<p>✓ set new min-width for body</p> | |
</li> | |
<li> | |
<p>✓ opravit text pres sebe</p> | |
</li> | |
<li> | |
<p>✓ vypnout parallax</p> | |
</li> | |
</ul> | |
</div> | |
</li> | |
</ul> | |
</div> | |
</li> | |
<li> | |
<p>✓ <strong>pripominky 6.10.14</strong></p> | |
<div class="ulist checklist"> | |
<ul class="checklist"> | |
<li> | |
<p>✓ A pak by to chtělo doladit to cukání, když se jede kolečkem na myši</p> | |
</li> | |
</ul> | |
</div> | |
</li> | |
</ul> | |
</div> | |
<script id="jsbin-javascript"> | |
var addShowHideClickEvent = function(showMoreDiv, hideDiv) { | |
showMoreDiv.addEventListener("click", function() { | |
hideDiv.classList.toggle("show-me"); | |
}); | |
} | |
var divsToHide = document.querySelectorAll('div.hide-me'); | |
for (var i = 0, hideDiv; hideDiv = divsToHide[i]; i++) { | |
var firstLi = hideDiv.querySelector('ul > li:first-child > :first-child'); | |
var showMoreDiv = document.createElement('div'); | |
showMoreDiv.classList.add('hide-me-float-right'); | |
showMoreDiv.innerHTML = 'more...' | |
firstLi.appendChild(showMoreDiv) | |
addShowHideClickEvent(showMoreDiv, hideDiv) | |
} | |
</script> | |
<script id="jsbin-source-css" type="text/css">.hide-me > ul > li:nth-child(n + 2), | |
.hide-me > ul > li:first-child > .checklist { | |
display: none; | |
} | |
.hide-me.show-me > ul > li:nth-child(n + 2), | |
.hide-me.show-me > ul > li:first-child > .checklist { | |
display: block; | |
} | |
.hide-me-float-right { | |
float: right; | |
color: blue; | |
text-decoration: underline; | |
}</script> | |
<script id="jsbin-source-javascript" type="text/javascript">var addShowHideClickEvent = function(showMoreDiv, hideDiv) { | |
showMoreDiv.addEventListener("click", function() { | |
hideDiv.classList.toggle("show-me"); | |
}); | |
} | |
var divsToHide = document.querySelectorAll('div.hide-me'); | |
for (var i = 0, hideDiv; hideDiv = divsToHide[i]; i++) { | |
var firstLi = hideDiv.querySelector('ul > li:first-child > :first-child'); | |
var showMoreDiv = document.createElement('div'); | |
showMoreDiv.classList.add('hide-me-float-right'); | |
showMoreDiv.innerHTML = 'more...' | |
firstLi.appendChild(showMoreDiv) | |
addShowHideClickEvent(showMoreDiv, hideDiv) | |
}</script></body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.hide-me > ul > li:nth-child(n + 2), | |
.hide-me > ul > li:first-child > .checklist { | |
display: none; | |
} | |
.hide-me.show-me > ul > li:nth-child(n + 2), | |
.hide-me.show-me > ul > li:first-child > .checklist { | |
display: block; | |
} | |
.hide-me-float-right { | |
float: right; | |
color: blue; | |
text-decoration: underline; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var addShowHideClickEvent = function(showMoreDiv, hideDiv) { | |
showMoreDiv.addEventListener("click", function() { | |
hideDiv.classList.toggle("show-me"); | |
}); | |
} | |
var divsToHide = document.querySelectorAll('div.hide-me'); | |
for (var i = 0, hideDiv; hideDiv = divsToHide[i]; i++) { | |
var firstLi = hideDiv.querySelector('ul > li:first-child > :first-child'); | |
var showMoreDiv = document.createElement('div'); | |
showMoreDiv.classList.add('hide-me-float-right'); | |
showMoreDiv.innerHTML = 'more...' | |
firstLi.appendChild(showMoreDiv) | |
addShowHideClickEvent(showMoreDiv, hideDiv) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment