index.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. document.addEventListener('DOMContentLoaded', () => {
  2. const $grid = document.getElementById('grid');
  3. const $columns = Array.prototype.slice.call(document.querySelectorAll('#grid > .column'), 0);
  4. const $markup = document.querySelector('#markup code');
  5. const $message = document.getElementById('message');
  6. const $add = document.getElementById('add');
  7. const $remove = document.getElementById('remove');
  8. let showing = 5;
  9. function showColumns() {
  10. if (showing === 13) {
  11. $message.style.display = 'block';
  12. } else {
  13. $message.style.display = 'none';
  14. }
  15. showing = Math.min(Math.max(parseInt(showing), 2), 12);
  16. $columns.forEach($el => {
  17. $el.style.display = 'none';
  18. });
  19. $columns.slice(0, showing).forEach($el => {
  20. $el.style.display = 'block';
  21. });
  22. $markup.innerHTML = '<span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">&quot;columns&quot;</span><span class="nt">&gt;</span>';
  23. $markup.insertAdjacentHTML('beforeend', '\n');
  24. for(let i = 0; i < showing; i++) {
  25. $markup.insertAdjacentHTML('beforeend', ' <span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">&quot;column&quot;</span><span class="nt">&gt;</span>');
  26. $markup.insertAdjacentHTML('beforeend', i + 1);
  27. $markup.insertAdjacentHTML('beforeend', '<span class="nt">&lt;/div&gt;</span>');
  28. $markup.insertAdjacentHTML('beforeend', '\n');
  29. }
  30. $markup.insertAdjacentHTML('beforeend', '<span class="nt">&lt;/div&gt;</span>');
  31. }
  32. $add.addEventListener('click', () => {
  33. showing++;
  34. showColumns();
  35. });
  36. $remove.addEventListener('click', () => {
  37. showing--;
  38. showColumns();
  39. });
  40. });