New: AR-3D model weergave gemaakt
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,2 +1,3 @@
|
|||||||
/public/
|
/public/
|
||||||
/resources/
|
/resources/
|
||||||
|
/static/3d/
|
||||||
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 16 KiB |
1077
assets/js/model-viewer.min.js
vendored
Normal file
1077
assets/js/model-viewer.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
22
content/bedrijf-aanmelden-bedankt/_index.nl.md
Normal file
22
content/bedrijf-aanmelden-bedankt/_index.nl.md
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
title: "Bedankt voor het aanmelden"
|
||||||
|
description: "Maak uw bedrijf beter zichtbaar door opgenomen te worden in onze lijst."
|
||||||
|
draft: false
|
||||||
|
layout: faq
|
||||||
|
ignoreSearch: true
|
||||||
|
build:
|
||||||
|
list: never
|
||||||
|
render: always
|
||||||
|
---
|
||||||
|
|
||||||
|
De ingediende gegevens worden zo spoedig mogelijk verwerkt. Het streven is dat deze binnen een week zichtbaar zijn op de site. Voor vragen is het mogelijk contact op te nemen via [info@mantelzorgwoning.info](mailto:info@mantelzorgwoning.info).
|
||||||
|
|
||||||
|
## Haal meer uit uw website met StartIT
|
||||||
|
|
||||||
|
Specifiek voor de bouw van mantelzorgwoningen zijn diverse tools ontwikkeld die de online presentatie versterken. Deze kunnen op de meeste websites direct worden geplaatst, zonder dat daar aanvullende plugins of licenties voor nodig zijn. Hieronder volgen enkele voorbeelden:
|
||||||
|
|
||||||
|
### Augmented Reality
|
||||||
|
|
||||||
|
Hieronder is een 3D-model van de ‘Luxe Suite’ weergegeven. Door op een mobiel apparaat op het AR-icoon te klikken, kan de woning direct virtueel in de eigen tuin worden geplaatst. Dit geeft uw klant een uitstekende indruk van de woning die geplaatst gaat worden.
|
||||||
|
|
||||||
|
{{< 3d model="demo3.glb" >}}
|
||||||
@@ -4,11 +4,12 @@ description: "Maak uw bedrijf beter zichtbaar door opgenomen te worden in onze l
|
|||||||
layout: "bedrijf-aanmelden"
|
layout: "bedrijf-aanmelden"
|
||||||
draft: false
|
draft: false
|
||||||
ignoreSearch: true
|
ignoreSearch: true
|
||||||
|
build:
|
||||||
|
list: never
|
||||||
|
render: always
|
||||||
---
|
---
|
||||||
|
|
||||||
## Over deze website
|
## Val op tussen de rest
|
||||||
Dit is een website onafhankelijk van een commercieel partner. Dit is een vrijwillig project gemaakt door Machiel Heinen van het Barnevelds IT-bedrijf [StartIT](https://start-it.nl).
|
Presenteer uw bedrijf optimaal door uw specialismen aan te vinken. Denk aan maatwerk, eigen transport of unieke service-garanties. Bezoekers gebruiken deze eigenschappen om gericht te filteren; hoe vollediger uw profiel, hoe groter de kans op een perfecte match.
|
||||||
|
|
||||||
Als u contact opneemt worden uw gegevens niet aan een derde partij doorgegeven, zonder dat u daarvoor eerst expliciet toestemming geeft, bijvoorbeeld als u wilt overgaan tot kopen of huren van een woning.
|
|
||||||
|
|
||||||
Direct een email sturen is ook mogelijk middels: [info@mantelzorgwoning.info](mailto:info@mantelzorgwoning.info)
|
Direct een email sturen is ook mogelijk middels: [info@mantelzorgwoning.info](mailto:info@mantelzorgwoning.info)
|
||||||
@@ -7,6 +7,7 @@ ignoreSearch: true
|
|||||||
build:
|
build:
|
||||||
render:
|
render:
|
||||||
list: never
|
list: never
|
||||||
|
|
||||||
---
|
---
|
||||||
{{< faq "Wat is een mantelzorgwoning?" >}}
|
{{< faq "Wat is een mantelzorgwoning?" >}}
|
||||||
Het is een speciaal aangepaste of maatwerk woning voor mensen die een vorm van zorg krijgen van hun naasten. Dit kan gaan over audio-/visuele aanpassingen, alles gelijkvloers en drempelvrij maken en plaatsing van (medische) apparatuur.
|
Het is een speciaal aangepaste of maatwerk woning voor mensen die een vorm van zorg krijgen van hun naasten. Dit kan gaan over audio-/visuele aanpassingen, alles gelijkvloers en drempelvrij maken en plaatsing van (medische) apparatuur.
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
"h2",
|
"h2",
|
||||||
"h3",
|
"h3",
|
||||||
"h4",
|
"h4",
|
||||||
|
"h5",
|
||||||
"head",
|
"head",
|
||||||
"header",
|
"header",
|
||||||
"hr",
|
"hr",
|
||||||
@@ -25,6 +26,7 @@
|
|||||||
"li",
|
"li",
|
||||||
"link",
|
"link",
|
||||||
"meta",
|
"meta",
|
||||||
|
"model-viewer",
|
||||||
"nav",
|
"nav",
|
||||||
"ol",
|
"ol",
|
||||||
"option",
|
"option",
|
||||||
@@ -71,6 +73,7 @@
|
|||||||
"btn-lg",
|
"btn-lg",
|
||||||
"btn-outline",
|
"btn-outline",
|
||||||
"btn-outline-primary",
|
"btn-outline-primary",
|
||||||
|
"btn-outline-secondary",
|
||||||
"btn-primary",
|
"btn-primary",
|
||||||
"btn-secondary",
|
"btn-secondary",
|
||||||
"btn-sm",
|
"btn-sm",
|
||||||
@@ -151,7 +154,6 @@
|
|||||||
"flex-grow-1",
|
"flex-grow-1",
|
||||||
"flex-sm-row",
|
"flex-sm-row",
|
||||||
"flex-wrap",
|
"flex-wrap",
|
||||||
"font-italic",
|
|
||||||
"font-small",
|
"font-small",
|
||||||
"footer-menu",
|
"footer-menu",
|
||||||
"footnote-backref",
|
"footnote-backref",
|
||||||
@@ -165,6 +167,7 @@
|
|||||||
"form-control-sm",
|
"form-control-sm",
|
||||||
"form-group",
|
"form-group",
|
||||||
"form-inline",
|
"form-inline",
|
||||||
|
"fst-italic",
|
||||||
"fw-bold",
|
"fw-bold",
|
||||||
"g-2",
|
"g-2",
|
||||||
"gap-2",
|
"gap-2",
|
||||||
@@ -205,12 +208,14 @@
|
|||||||
"modal-content",
|
"modal-content",
|
||||||
"modal-dialog",
|
"modal-dialog",
|
||||||
"modal-header",
|
"modal-header",
|
||||||
|
"model-container",
|
||||||
"ms-0",
|
"ms-0",
|
||||||
"ms-2",
|
"ms-2",
|
||||||
"ms-auto",
|
"ms-auto",
|
||||||
"ms-lg-4",
|
"ms-lg-4",
|
||||||
"ms-md-4",
|
"ms-md-4",
|
||||||
"ms-sm-2",
|
"ms-sm-2",
|
||||||
|
"mt-1",
|
||||||
"mt-2",
|
"mt-2",
|
||||||
"mt-3",
|
"mt-3",
|
||||||
"mt-4",
|
"mt-4",
|
||||||
@@ -220,6 +225,7 @@
|
|||||||
"mx-2",
|
"mx-2",
|
||||||
"mx-lg-0",
|
"mx-lg-0",
|
||||||
"my-3",
|
"my-3",
|
||||||
|
"my-4",
|
||||||
"my-md-2",
|
"my-md-2",
|
||||||
"nav",
|
"nav",
|
||||||
"nav-item",
|
"nav-item",
|
||||||
@@ -246,6 +252,7 @@
|
|||||||
"order-2",
|
"order-2",
|
||||||
"order-md-1",
|
"order-md-1",
|
||||||
"order-md-2",
|
"order-md-2",
|
||||||
|
"p-2",
|
||||||
"p-3",
|
"p-3",
|
||||||
"p-4",
|
"p-4",
|
||||||
"p-sm-5",
|
"p-sm-5",
|
||||||
@@ -271,6 +278,7 @@
|
|||||||
"px-0",
|
"px-0",
|
||||||
"px-1",
|
"px-1",
|
||||||
"px-4",
|
"px-4",
|
||||||
|
"px-5",
|
||||||
"px-lg-5",
|
"px-lg-5",
|
||||||
"px-sm-4",
|
"px-sm-4",
|
||||||
"py-2",
|
"py-2",
|
||||||
@@ -294,6 +302,7 @@
|
|||||||
"sidelist",
|
"sidelist",
|
||||||
"sidenav",
|
"sidenav",
|
||||||
"small",
|
"small",
|
||||||
|
"spinner-border",
|
||||||
"start-100",
|
"start-100",
|
||||||
"status-label",
|
"status-label",
|
||||||
"step",
|
"step",
|
||||||
@@ -349,6 +358,8 @@
|
|||||||
"afwijkingen-en-lokale-regelingen",
|
"afwijkingen-en-lokale-regelingen",
|
||||||
"alternatieve-bewijsvoering",
|
"alternatieve-bewijsvoering",
|
||||||
"alternative-evidence",
|
"alternative-evidence",
|
||||||
|
"ar-button",
|
||||||
|
"augmented-reality",
|
||||||
"belangrijke-fiscale-en-financiële-aandachtspunten",
|
"belangrijke-fiscale-en-financiële-aandachtspunten",
|
||||||
"belangrijke-overwegingen-per-type",
|
"belangrijke-overwegingen-per-type",
|
||||||
"benefits-of-an-informal-care-dwelling",
|
"benefits-of-an-informal-care-dwelling",
|
||||||
@@ -426,6 +437,7 @@
|
|||||||
"gegevens-van-de-sitebeheerder",
|
"gegevens-van-de-sitebeheerder",
|
||||||
"gemeentelijke-eisen-controleren",
|
"gemeentelijke-eisen-controleren",
|
||||||
"goed-verblijven",
|
"goed-verblijven",
|
||||||
|
"haal-meer-uit-uw-website-met-startit",
|
||||||
"het-bewijs-van-zorgbehoefte",
|
"het-bewijs-van-zorgbehoefte",
|
||||||
"het-proces-van-fabriek-naar-tuin",
|
"het-proces-van-fabriek-naar-tuin",
|
||||||
"huurkoop",
|
"huurkoop",
|
||||||
@@ -445,6 +457,7 @@
|
|||||||
"key-considerations-per-type",
|
"key-considerations-per-type",
|
||||||
"key-features-in-the-nl",
|
"key-features-in-the-nl",
|
||||||
"kvk",
|
"kvk",
|
||||||
|
"lazy-load-poster",
|
||||||
"lease",
|
"lease",
|
||||||
"legal-definition-in-the-netherlands",
|
"legal-definition-in-the-netherlands",
|
||||||
"lname",
|
"lname",
|
||||||
@@ -512,11 +525,18 @@
|
|||||||
"step-4",
|
"step-4",
|
||||||
"step-5",
|
"step-5",
|
||||||
"submit-btn",
|
"submit-btn",
|
||||||
|
"summary-address",
|
||||||
"summary-build",
|
"summary-build",
|
||||||
"summary-custom",
|
"summary-custom",
|
||||||
|
"summary-email",
|
||||||
|
"summary-factory",
|
||||||
|
"summary-finance",
|
||||||
"summary-intro",
|
"summary-intro",
|
||||||
|
"summary-kvk",
|
||||||
"summary-name",
|
"summary-name",
|
||||||
|
"summary-options",
|
||||||
"summary-slogan",
|
"summary-slogan",
|
||||||
|
"summary-web",
|
||||||
"telephone",
|
"telephone",
|
||||||
"temporary-and-modular-units",
|
"temporary-and-modular-units",
|
||||||
"termination-of-informal-care",
|
"termination-of-informal-care",
|
||||||
@@ -536,6 +556,7 @@
|
|||||||
"typen-mantelzorgwoning",
|
"typen-mantelzorgwoning",
|
||||||
"types-of-informal-care-dwellings",
|
"types-of-informal-care-dwellings",
|
||||||
"utility-connections",
|
"utility-connections",
|
||||||
|
"val-op-tussen-de-rest",
|
||||||
"verbouw-van-bestaande-bebouwing",
|
"verbouw-van-bestaande-bebouwing",
|
||||||
"vergunning",
|
"vergunning",
|
||||||
"vergunningsplichtig-bouwen",
|
"vergunningsplichtig-bouwen",
|
||||||
@@ -563,6 +584,7 @@
|
|||||||
"who-is-it-for",
|
"who-is-it-for",
|
||||||
"why-the-gp-often-refuses",
|
"why-the-gp-often-refuses",
|
||||||
"wipe",
|
"wipe",
|
||||||
|
"woning-viewer",
|
||||||
"zoning-plan-and-location",
|
"zoning-plan-and-location",
|
||||||
"zorgindicatie-en-documentatie-verzamelen"
|
"zorgindicatie-en-documentatie-verzamelen"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -152,20 +152,47 @@
|
|||||||
<div class="step d-none" id="step-5">
|
<div class="step d-none" id="step-5">
|
||||||
<div class="row gy-3">
|
<div class="row gy-3">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="p-3 bg-light rounded border">
|
<div class="p-4 bg-light rounded border">
|
||||||
<p><strong>Bedrijf:</strong> <span id="summary-name"></span></p>
|
<h3 class="mb-4 text-primary">Controleer uw gegevens</h3>
|
||||||
<p><strong>Slogan:</strong> <span id="summary-slogan"></span></p>
|
|
||||||
<p><strong>Bouwmethode:</strong> <span id="summary-build"></span></p>
|
<div class="row">
|
||||||
<p><strong>Maatwerk:</strong> <span id="summary-custom"></span></p>
|
<div class="col-md-6">
|
||||||
<hr>
|
<h5>Bedrijf & Contact</h5>
|
||||||
<p><strong>Introductie:</strong></p>
|
<p class="mb-1"><strong>Naam:</strong> <span id="summary-name"></span></p>
|
||||||
<p class="font-italic" id="summary-intro" style="white-space: pre-wrap;"></p>
|
<p class="mb-1"><strong>KvK:</strong> <span id="summary-kvk"></span></p>
|
||||||
|
<p class="mb-1"><strong>Website:</strong> <span id="summary-web"></span></p>
|
||||||
|
<p class="mb-1"><strong>E-mail:</strong> <span id="summary-email"></span></p>
|
||||||
|
<p class="mb-1"><strong>Adres:</strong> <span id="summary-address"></span></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
<h5>Productie & Aanbod</h5>
|
||||||
|
<p class="mb-1"><strong>Fabriek:</strong> <span id="summary-factory"></span></p>
|
||||||
|
<p class="mb-1"><strong>Bouwmethode:</strong> <span id="summary-build"></span></p>
|
||||||
|
<p class="mb-1"><strong>Maatwerk:</strong> <span id="summary-custom"></span></p>
|
||||||
|
<p class="mb-1"><strong>Extra opties:</strong> <span id="summary-options"></span></p>
|
||||||
|
<p class="mb-1"><strong>Financiering:</strong> <span id="summary-finance"></span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr class="my-4">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<h5>Presentatie</h5>
|
||||||
|
<p class="mb-2"><strong>Slogan:</strong> <br><span id="summary-slogan" class="fst-italic"></span></p>
|
||||||
|
<p class="mb-0"><strong>Bedrijfsintroductie:</strong></p>
|
||||||
|
<div class="p-2 border rounded bg-white mt-1">
|
||||||
|
<span id="summary-intro" style="white-space: pre-wrap;"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-12 mt-4">
|
<div class="col-md-12 mt-4 text-center">
|
||||||
<button type="button" class="btn btn-secondary prev-step">Aanpassen</button>
|
<button type="button" class="btn btn-outline-secondary prev-step me-3">Aanpassen</button>
|
||||||
<button type="submit" id="submit-btn" class="btn btn-success btn-lg">Definitief verzenden</button>
|
<button type="submit" id="submit-btn" class="btn btn-success btn-lg px-5">Definitief verzenden</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -202,11 +229,26 @@
|
|||||||
return picked.length ? picked.join(', ') : 'Geen';
|
return picked.length ? picked.join(', ') : 'Geen';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 1. URL HTTPS Preload helper
|
||||||
|
const websiteEl = document.getElementById('website');
|
||||||
|
if (websiteEl) {
|
||||||
|
websiteEl.addEventListener('focus', function() {
|
||||||
|
if (!this.value) this.value = 'https://';
|
||||||
|
});
|
||||||
|
websiteEl.addEventListener('blur', function() {
|
||||||
|
if (this.value === 'https://') this.value = '';
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function setFieldValue(fieldId, value) {
|
function setFieldValue(fieldId, value) {
|
||||||
const el = document.getElementById(fieldId);
|
const el = document.getElementById(fieldId);
|
||||||
if (!el || !value) return false;
|
if (!el || !value) return false;
|
||||||
if (el.value.trim() && el.value !== 'https://') return false;
|
let finalVal = value;
|
||||||
el.value = value;
|
// Forceer https op website veld bij prefill
|
||||||
|
if (fieldId === 'website' && value && !value.startsWith('http')) {
|
||||||
|
finalVal = 'https://' + value;
|
||||||
|
}
|
||||||
|
el.value = finalVal;
|
||||||
el.dispatchEvent(new Event('input', { bubbles: true }));
|
el.dispatchEvent(new Event('input', { bubbles: true }));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -216,11 +258,10 @@
|
|||||||
if (box) box.textContent = msg;
|
if (box) box.textContent = msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Formatting helpers
|
// Formatting & Counters
|
||||||
const kvkEl = document.getElementById('kvk');
|
const kvkEl = document.getElementById('kvk');
|
||||||
if (kvkEl) kvkEl.addEventListener('input', e => e.target.value = e.target.value.replace(/\D/g, '').slice(0, 8));
|
if (kvkEl) kvkEl.addEventListener('input', e => e.target.value = e.target.value.replace(/\D/g, '').slice(0, 8));
|
||||||
|
|
||||||
// Counters
|
|
||||||
const setupCounter = (fId, cId, max) => {
|
const setupCounter = (fId, cId, max) => {
|
||||||
const el = document.getElementById(fId), cnt = document.getElementById(cId);
|
const el = document.getElementById(fId), cnt = document.getElementById(cId);
|
||||||
if (!el || !cnt) return;
|
if (!el || !cnt) return;
|
||||||
@@ -231,7 +272,7 @@
|
|||||||
setupCounter('slogan', 'slogan-count', 30);
|
setupCounter('slogan', 'slogan-count', 30);
|
||||||
setupCounter('intro', 'char-count', 320);
|
setupCounter('intro', 'char-count', 320);
|
||||||
|
|
||||||
// Navigation
|
// Navigation & 2. UITGEBREIDE SUMMARY
|
||||||
$$('.next-step').forEach(btn => {
|
$$('.next-step').forEach(btn => {
|
||||||
btn.addEventListener('click', () => {
|
btn.addEventListener('click', () => {
|
||||||
const curr = btn.closest('.step');
|
const curr = btn.closest('.step');
|
||||||
@@ -244,11 +285,25 @@
|
|||||||
const next = curr.nextElementSibling;
|
const next = curr.nextElementSibling;
|
||||||
if (next) {
|
if (next) {
|
||||||
if (next.id === 'step-5') {
|
if (next.id === 'step-5') {
|
||||||
document.getElementById('summary-name').innerText = getVal('company_name');
|
// Vullen van alle summary velden
|
||||||
document.getElementById('summary-slogan').innerText = getVal('slogan');
|
const sMap = {
|
||||||
document.getElementById('summary-custom').innerText = getVal('customization');
|
'summary-name': getVal('company_name'),
|
||||||
document.getElementById('summary-intro').innerText = getVal('intro');
|
'summary-kvk': getVal('kvk'),
|
||||||
document.getElementById('summary-build').innerText = getChecked('build_method');
|
'summary-web': getVal('website'),
|
||||||
|
'summary-email': getVal('email'),
|
||||||
|
'summary-address': `${getVal('address')}, ${getVal('postal_code')}`,
|
||||||
|
'summary-factory': `${getVal('factory')} (Locaties: ${getVal('factory_count')})`,
|
||||||
|
'summary-build': getChecked('build_method'),
|
||||||
|
'summary-options': getChecked('additional_offerings'),
|
||||||
|
'summary-finance': getChecked('finance_options'),
|
||||||
|
'summary-custom': getVal('customization'),
|
||||||
|
'summary-slogan': getVal('slogan'),
|
||||||
|
'summary-intro': getVal('intro')
|
||||||
|
};
|
||||||
|
for (const [id, val] of Object.entries(sMap)) {
|
||||||
|
const el = document.getElementById(id);
|
||||||
|
if (el) el.innerText = val;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
curr.classList.add('d-none');
|
curr.classList.add('d-none');
|
||||||
next.classList.remove('d-none');
|
next.classList.remove('d-none');
|
||||||
@@ -288,16 +343,45 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 3. SUBMIT MET VOLLEDIGE BESCHRIJVING
|
||||||
document.getElementById('multi-step-form').addEventListener('submit', async (e) => {
|
document.getElementById('multi-step-form').addEventListener('submit', async (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
const btn = document.getElementById('submit-btn');
|
const btn = document.getElementById('submit-btn');
|
||||||
btn.disabled = true; btn.innerText = 'Verzenden...';
|
btn.disabled = true; btn.innerText = 'Verzenden...';
|
||||||
|
|
||||||
|
const fullDescription = `
|
||||||
|
BEDRIJFSGEGEVENS
|
||||||
|
-----------------
|
||||||
|
Naam: ${getVal('company_name')}
|
||||||
|
KvK: ${getVal('kvk')}
|
||||||
|
Adres: ${getVal('address')}
|
||||||
|
Postcode: ${getVal('postal_code')}
|
||||||
|
Tel: ${getVal('telephone')}
|
||||||
|
Email: ${getVal('email')}
|
||||||
|
Website: ${getVal('website')}
|
||||||
|
|
||||||
|
PRODUCTIE & AANBOD
|
||||||
|
-----------------
|
||||||
|
Eigen fabriek: ${getVal('factory')} (Aantal: ${getVal('factory_count')})
|
||||||
|
Bouwmethode: ${getChecked('build_method')}
|
||||||
|
Maatwerk: ${getVal('customization')}
|
||||||
|
Financiering: ${getChecked('finance_options')}
|
||||||
|
Aanvullend aanbod: ${getChecked('additional_offerings')}
|
||||||
|
Tweedehands: ${getVal('second_hand')}
|
||||||
|
Servicecontract: ${getVal('service_contract')}
|
||||||
|
Voorraad leverbaar: ${getVal('stock')}
|
||||||
|
|
||||||
|
MARKETING
|
||||||
|
-----------------
|
||||||
|
Slogan: ${getVal('slogan')}
|
||||||
|
Introductie: ${getVal('intro')}
|
||||||
|
`.trim();
|
||||||
|
|
||||||
const payload = {
|
const payload = {
|
||||||
lastName: getVal('company_name'),
|
lastName: getVal('company_name'),
|
||||||
website: getVal('website'),
|
website: getVal('website'),
|
||||||
emailAddress: getVal('email') !== '-' ? getVal('email') : CFG.fallbackEmail,
|
emailAddress: getVal('email') !== '-' ? getVal('email') : CFG.fallbackEmail,
|
||||||
description: `KVK: ${getVal('kvk')}\nINTRO: ${getVal('intro')}\nBOUW: ${getChecked('build_method')}`
|
description: fullDescription
|
||||||
};
|
};
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
94
layouts/shortcodes/3d.html
Normal file
94
layouts/shortcodes/3d.html
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
<script type="module" src="https://ajax.googleapis.com/ajax/libs/model-viewer/3.4.0/model-viewer.min.js"></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.model-container {
|
||||||
|
width: 100%;
|
||||||
|
height: 500px;
|
||||||
|
background-color: #f8f9fa;
|
||||||
|
border-radius: 15px;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
border: 1px solid #dee2e6;
|
||||||
|
}
|
||||||
|
|
||||||
|
model-viewer {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-color: #f8f9fa;
|
||||||
|
--poster-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* De poster/lader wordt door model-viewer zelf verborgen na laden */
|
||||||
|
#lazy-load-poster {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-color: #f8f9fa;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ar-button {
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-radius: 30px; /* Iets ronder voor moderne look */
|
||||||
|
border: 1px solid #007bff;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 20px;
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%); /* Netjes in het midden onderaan */
|
||||||
|
padding: 12px 24px;
|
||||||
|
font-family: system-ui, -apple-system, sans-serif;
|
||||||
|
font-size: 15px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #007bff;
|
||||||
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
||||||
|
z-index: 100;
|
||||||
|
cursor: pointer;
|
||||||
|
white-space: nowrap;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
transition: all 0.2s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ar-button:active {
|
||||||
|
background-color: #e7f1ff;
|
||||||
|
transform: translateX(-50%) scale(0.95);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Verbergt de knop op desktop (omdat AR daar niet kan) */
|
||||||
|
/* Maar we laten hem op mobiel altijd staan voor de test */
|
||||||
|
@media (pointer: fine) {
|
||||||
|
#ar-button {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div class="model-container">
|
||||||
|
<model-viewer
|
||||||
|
id="woning-viewer"
|
||||||
|
src="/3d/{{ .Get "model" }}"
|
||||||
|
ar
|
||||||
|
ar-modes="scene-viewer webxr quick-look"
|
||||||
|
ar-placement="floor"
|
||||||
|
camera-controls
|
||||||
|
shadow-intensity="1"
|
||||||
|
auto-rotate
|
||||||
|
touch-action="pan-y"
|
||||||
|
reveal="auto"
|
||||||
|
scale="0.01 0.01 0.01"
|
||||||
|
camera-orbit="45deg 75deg auto">
|
||||||
|
|
||||||
|
<div slot="poster" id="lazy-load-poster">
|
||||||
|
<div class="text-center">
|
||||||
|
<div class="spinner-border text-primary" role="status"></div>
|
||||||
|
<p class="mt-2">Woning wordt op ware grootte geplaatst...</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button slot="ar-button" id="ar-button">
|
||||||
|
👋 BEKIJK IN UW TUIN
|
||||||
|
</button>
|
||||||
|
</model-viewer>
|
||||||
|
</div>
|
||||||
1077
static/js/model-viewer.min.js
vendored
Normal file
1077
static/js/model-viewer.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1077
themes/godocs-1/assets/js/model-viewer.min.js
vendored
Normal file
1077
themes/godocs-1/assets/js/model-viewer.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user