note.js 1.1 KB

123456789101112131415161718192021222324252627282930
  1. import imagesLoaded from 'imagesloaded'
  2. document.addEventListener('DOMContentLoaded', function () {
  3. function resizeGridItem (item) {
  4. const grid = document.getElementsByClassName('note-card-holder')[0]
  5. const rowHeight = parseInt(window.getComputedStyle(grid).getPropertyValue('grid-auto-rows'))
  6. const rowGap = parseInt(window.getComputedStyle(grid).getPropertyValue('grid-row-gap'))
  7. const rowSpan = Math.ceil((item.querySelector('.item').getBoundingClientRect().height + rowGap) / (rowHeight + rowGap))
  8. item.style.gridRowEnd = 'span ' + rowSpan
  9. }
  10. function resizeAllGridItems () {
  11. const allItems = document.getElementsByClassName('note-card')
  12. for (let x = 0; x < allItems.length; x++) {
  13. resizeGridItem(allItems[x])
  14. }
  15. }
  16. function resizeInstance (instance) {
  17. const item = instance.elements[0]
  18. resizeGridItem(item)
  19. }
  20. window.addEventListener('resize', resizeAllGridItems)
  21. const allItems = document.getElementsByClassName('note-card')
  22. for (let x = 0; x < allItems.length; x++) {
  23. imagesLoaded(allItems[x], resizeInstance)
  24. }
  25. })