Newer
Older
<div
id="title"
class="text-container title-text"
>
<!-- Accordion 1 -->
<button class="accordion households-accordion active">
<span v-html="t('text.components.mapText.p1Title')"></span><span class="symbol">-</span>
</button>
<p v-html="t('text.components.mapText.paragraph1')"></p>
:srcset="getImageSrcSet('avg_household_size_2022', 'webp')"
sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
/>
<img
:srcset="getImageSrcSet('avg_household_size_2022', 'jpg')"
sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
:src="getImageSrc('avg_household_size_2022', 'jpg', 1280)"
:alt="t('text.components.mapText.p1Alt')"
<!-- Accordion 2 -->
<button class="accordion latino-accordion">
<span v-html="t('text.components.mapText.p4Title')"></span><span class="symbol">+</span>
</button>
<p v-html="t('text.components.mapText.paragraph4')"></p>
:srcset="getImageSrcSet('perc_hispanic_census_2022', 'webp')"
sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
/>
<img
:srcset="getImageSrcSet('perc_hispanic_census_2022', 'jpg')"
sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
:src="getImageSrc('perc_hispanic_census_2022', 'jpg', 1280)"
:alt="t('text.components.mapText.p4Alt')"
<!-- Accordion 3 -->
<button class="accordion disability-accordion">
<span v-html="t('text.components.mapText.p5Title')"></span><span class="symbol">+</span>
</button>
<p v-html="t('text.components.mapText.paragraph5')"></p>
:srcset="getImageSrcSet('perc_disabled_census_2022', 'webp')"
sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
/>
<img
:srcset="getImageSrcSet('perc_disabled_census_2022', 'jpg')"
sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
:src="getImageSrc('perc_disabled_census_2022', 'jpg', 1280)"
:alt="t('text.components.mapText.p5Alt')"
<!-- Accordion 4 -->
<button class="accordion income-accordion">
<span v-html="t('text.components.mapText.p2Title')"></span><span class="symbol">+</span>
</button>
<p v-html="t('text.components.mapText.paragraph2')"></p>
:srcset="getImageSrcSet('med_income_census_2022', 'webp')"
sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
/>
<img
:srcset="getImageSrcSet('med_income_census_2022', 'jpg')"
sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
:src="getImageSrc('med_income_census_2022', 'jpg', 1280)"
:alt="t('text.components.mapText.p2Alt')"
<!-- Accordion 5 -->
<button class="accordion renters-accordion">
<span v-html="t('text.components.mapText.p3Title')"></span><span class="symbol">+</span>
</button>
<p v-html="t('text.components.mapText.paragraph3')"></p>
sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
/>
<img
sizes="(max-width: 600px) 320px, (max-width: 1200px) 640px, (min-width: 1201px) 1280px, 1920px"
:alt="t('text.components.mapText.p3Alt')"
Carr, Amanda Nicole
committed
</div>
<script setup>
import { onMounted } from 'vue';
const getImageSrc = (baseName, format, size) => {
const lang = locale.value === 'es' ? 'es' : 'en'; // Get language
return new URL(`../assets/images/responsive_images/${baseName}_${lang}-${size}.${format}`, import.meta.url).href;
};
const getImageSrcSet = (baseName, format) => {
const lang = locale.value === 'es' ? 'es' : 'en'; // Get language
return `
${new URL(`../assets/images/responsive_images/${baseName}_${lang}-320.${format}`, import.meta.url).href} 320w,
${new URL(`../assets/images/responsive_images/${baseName}_${lang}-640.${format}`, import.meta.url).href} 640w,
${new URL(`../assets/images/responsive_images/${baseName}_${lang}-1280.${format}`, import.meta.url).href} 1280w,
${new URL(`../assets/images/responsive_images/${baseName}_${lang}-1800.${format}`, import.meta.url).href} 1920w
`;
};
// Accordion click handler
onMounted(() => {
const acc = document.getElementsByClassName("accordion");
for (let i = 0; i < acc.length; i++) {
acc[i].addEventListener("click", function () {
this.classList.toggle("active");
const panel = this.nextElementSibling;
const symbol = this.querySelector('.symbol');
if (panel.style.display === "block") {
panel.style.display = "none";
symbol.textContent = "+";
} else {
panel.style.display = "block";
symbol.textContent = "-";
}
});
}
});
<style lang="scss" scoped>
$Demographiccharacteristics: var(--color-Demographiccharacteristics);
$Landtenure: var(--color-Landtenure);
$Livingconditions: var(--color-Livingconditions);
$Socioeconomicstatus: var(--color-Socioeconomicstatus);
$Health: var(--color-Health);
$Riskperception: var(--color-Riskperception);
$Exposure: var(--color-Exposure);
$ThemeGrey: var(--color-themegrey);
.accordion {
background-color: #eee;
color: #fff;
cursor: pointer;
width: 100%;
border: none;
text-align: left;
outline: none;
transition: 0.4s;
display: flex;
justify-content: space-between;
align-items: center;
font-family: 'Source Sans Pro', sans-serif;
position: relative;
border: 2px solid transparent;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
.accordion.disability-accordion {
.accordion::before {
content: "";
position: absolute;
top: -2px;
left: -2px;
right: -2px;
bottom: -2px;
border: 2px solid transparent;
z-index: -1;
transition: border-color 0.3s;
}
.accordion:hover::before, .accordion.active::before {
border-color: rgba(217, 217, 217, 0.95);
margin-bottom: 15px;
margin-top: -15px;
border-top-width: 0;
border-radius: 0 0 10px 10px;
.panel p {
margin: 20px;
}
.panel img {
display: block;
margin-left: auto;
margin-right: auto;
max-width: 100%;
}
.households-accordion.active + .households-panel {
display: block;
}
<style lang="scss">
#choropleth-map-tooltip {
margin-left: -120px;
}