Add functionality to enlarge figure by clicking on it

master
Maik de Kruif 10 months ago
parent 053b5784aa
commit c4785c3f7e
No known key found for this signature in database
GPG Key ID: DB1A8C782DD43CB3
  1. 26
      themes/maik-blog/assets/js/list_columns.js
  2. 21
      themes/maik-blog/assets/js/main.js
  3. 34
      themes/maik-blog/assets/scss/_main.scss

@ -1,26 +0,0 @@
function resizeItem(masonry, item){
let rowHeight = parseInt(window.getComputedStyle(masonry).getPropertyValue('grid-auto-rows'));
let rowGap = parseInt(window.getComputedStyle(masonry).getPropertyValue('grid-row-gap'));
let rowSpan = Math.ceil((item.querySelector('.masonry-item-content').getBoundingClientRect().height+rowGap)/(rowHeight+rowGap));
item.style.gridRowEnd = "span "+rowSpan;
}
function resizeAll(){
let masonry = document.getElementsByClassName("masonry")[0];
if (!masonry) return;
masonry.style.gridAutoRows = "20px"
masonry.style.marginBottom = "80px"
let allItems = masonry.getElementsByClassName("masonry-item");
for (const item of allItems) {
resizeItem(masonry, item)
}
}
window.addEventListener("load", () => {
resizeAll()
window.addEventListener("resize", resizeAll);
})

@ -1 +1,20 @@
// Some code could be here ... window.addEventListener("load", () => {
for (let figure of document.getElementsByTagName("figure")) {
if (figure.classList.contains("post-cover"))
continue
figure.addEventListener("click", () => {
figure.classList.toggle("floated-focus")
})
}
document.addEventListener('keydown', (e) => {
if (e.keyCode !== 27)
return
for (let figure of document.getElementsByClassName("floated-focus")) {
figure.classList.remove("floated-focus")
}
})
})

@ -184,7 +184,7 @@ figure {
figcaption { figcaption {
font-size: 1.125rem; font-size: 1.125rem;
line-height: 1.3; line-height: 1.3;
margin: 1.33em 0; margin-top: 0.4em;
font-weight: bold; font-weight: bold;
opacity: 0.8; opacity: 0.8;
@ -204,11 +204,43 @@ figure {
&.small { &.small {
max-width: 300px; max-width: 300px;
width: 90%; width: 90%;
margin: 5px 0;
} }
&.inline { &.inline {
display: inline-table; display: inline-table;
} }
&.floated-focus {
display: flex;
position:fixed;
top: 0;
left: 0;
width: 100vw;
max-width: unset;
height: 100vh;
padding: 3rem;
margin: 0;
align-items: center;
justify-content: center;
flex-direction: column;
background-color: #212020ec;
z-index: 100;
figcaption {
color: #ddd3c6;
font-size: 1.5rem;
}
&:after {
content: "Close";
margin-top: 1rem;
text-decoration: underline;
cursor: pointer;
display: block;
color: #999288;
}
}
} }
code { code {

Loading…
Cancel
Save