Merge branch 'development'
All checks were successful
Build and Deploy / Build and Deploy (push) Successful in 30s

This commit is contained in:
Bob Vandevliet 2025-12-18 20:18:42 +01:00
commit 44eb81258e
11 changed files with 159 additions and 124 deletions

37
public/contact.html Normal file
View file

@ -0,0 +1,37 @@
<!DOCTYPE html>
<html lang="nl" data-bs-theme="dark">
<head>
<!--# include file='/includes/partials/head-content.html' -->
<title>Vandevliet Aerial Shots</title>
<meta name="description" content="FPV dronevideo's voor bedrijven, vastgoed, recreatie, sport en evenementen.">
<meta property="og:title" content="Vandevliet Aerial Shots">
<meta property="og:description" content="FPV dronevideo's voor bedrijven, vastgoed, recreatie, sport en evenementen.">
<meta property="og:type" content="website">
<meta property="og:locale" content="nl_NL">
<meta property="og:url" content="https://vandevliet-aerialshots.com">
<meta property="og:image" content="/assets/static/logo-aerialshots-v1-w.png">
</head>
<body class="d-flex flex-column min-vh-100">
<header>
<!--# include file='/includes/components/nav.html' -->
</header>
<main>
<section class="container-xxl pb-0">
<h1 id="contact" class="text-center">Contact</h1>
<!--# include file='/includes/components/contact-row.html' -->
</section>
<!-- Nothing more here yet, contact form will be added later.. -->
</main>
<footer class="bg-secondary-subtle">
<!--# include file='/includes/partials/footer-bottom.html' -->
</footer>
</body>
</html>

View file

@ -0,0 +1,38 @@
<div class="row justify-content-center">
<p class="lead text-center">
Stuur mij gerust een mailtje voor een offerte of vrijblijvend gesprek! 🙂
<br>🡇
</p>
<div class="col-6 col-lg-3">
<div class="card h-100 bg-secondary-subtle">
<div class="card-body d-flex flex-column">
<h2 class="section fs-3 card-title">Bob Vandevliet</h2>
<p style="margin-top: 0 !important;">Gecertificeerd FPV-dronepiloot</p>
<p>
<a href="mailto:bob@vandevliet-aerialshots.com">bob@vandevliet-aerialshots.com</a>
<br>Arnhem, Gelderland
</p>
<!-- <p><a class='btn btn-primary' href='/contact'>Offerte aanvragen</a></p> -->
<p class="fs-5 ff-header">Vandevliet Aerial Shots</p>
<p style="margin-top: 0 !important;">
KvK: 94567255<br>
Btw: NL005095319B19
</p>
<p>
<a href="/assets/static/Vandevliet AS - Algemene Voorwaarden - 250530.pdf" target="_blank">Algemene Voorwaarden</a>
</p>
<!-- <h4 class='fs-5'>Socials</h4> -->
<p class="socials fs-2" style="margin-top: auto !important; padding-top: 1rem !important;">
<a href="https://www.instagram.com/vandevliet.fpv" target="_blank" rel="noopener noreferrer" title="Vandevliet Aerial Shots on Instagram" aria-label="Vandevliet Aerial Shots on Instagram"><i class="fab fa-instagram"></i></a>
<a href="https://www.youtube.com/@vandevliet-fpv" target="_blank" rel="noopener noreferrer" title="Vandevliet Aerial Shots on YouTube" aria-label="Vandevliet Aerial Shots on YouTube"><i class="fab fa-youtube"></i></a>
<a href="https://www.linkedin.com/company/vdv-as" target="_blank" rel="noopener noreferrer" title="Vandevliet Aerial Shots on LinkedIn" aria-label="Vandevliet Aerial Shots on LinkedIn"><i class="fab fa-linkedin"></i></a>
</p>
</div>
</div>
</div>
<div class="col-6 col-lg-3">
<div class="card h-100 bg-transparent">
<img class="card-img" src="/assets/static/20230909_150343.jpg" alt="Portrait foto van mijzelf.">
</div>
</div>
</div>

View file

@ -18,7 +18,7 @@
<a class="nav-link" href="/#over-mij">Over mij</a>
</li>
<li class="nav-item">
<a class="nav-link btn btn-primary" href="/#contact">Contact</a>
<a class="nav-link btn btn-primary" href="/contact">Contact</a>
</li>
<li class="nav-item socials">
<a class="nav-link" href="https://www.instagram.com/vandevliet.fpv" target="_blank" rel="noopener noreferrer" title="Vandevliet Aerial Shots on Instagram" aria-label="Vandevliet Aerial Shots on Instagram"><i class="fab fa-instagram"></i></a>

View file

@ -1,47 +0,0 @@
<footer class="bg-secondary-subtle">
<section class="container-xxl pt-4">
<div class="row justify-content-center">
<div class="col-6 col-lg-3">
<div class="card h-100">
<div class="card-body d-flex flex-column">
<h2 class="section fs-3 card-title" id="contact">Contact</h2>
<p class="fs-5 ff-header">Bob Vandevliet</p>
<p style="margin-top: 0 !important;">Gecertificeerd FPV-dronepiloot</p>
<p>
<a href="mailto:bob@vandevliet-aerialshots.com">bob@vandevliet-aerialshots.com</a>
<!-- <a href="tel:+31612345678">+31 6 12345678</a> -->
<br>Arnhem, Gelderland
</p>
<p class="fs-5 ff-header">Vandevliet Aerial Shots</p>
<p style="margin-top: 0 !important;">
KvK: 94567255<br>
Btw: NL005095319B19
</p>
<p>
<a href="/assets/static/Vandevliet AS - Algemene Voorwaarden - 250530.pdf" target="_blank">Algemene Voorwaarden</a>
</p>
<!-- <h4 class="fs-5">Socials</h4> -->
<p class="socials fs-2" style="margin-top: auto !important; padding-top: 1rem !important;">
<a href="https://www.instagram.com/vandevliet.fpv" target="_blank" rel="noopener noreferrer" title="Vandevliet Aerial Shots on Instagram" aria-label="Vandevliet Aerial Shots on Instagram"><i class="fab fa-instagram"></i></a>
<a href="https://www.youtube.com/@vandevliet-fpv" target="_blank" rel="noopener noreferrer" title="Vandevliet Aerial Shots on YouTube" aria-label="Vandevliet Aerial Shots on YouTube"><i class="fab fa-youtube"></i></a>
<a href="https://www.linkedin.com/company/vdv-as" target="_blank" rel="noopener noreferrer" title="Vandevliet Aerial Shots on LinkedIn" aria-label="Vandevliet Aerial Shots on LinkedIn"><i class="fab fa-linkedin"></i></a>
</p>
</div>
</div>
</div>
<div class="col-6 col-lg-3">
<div class="card h-100 bg-transparent">
<img class="card-img" src="/assets/static/20230909_150343.jpg" alt="Portrait foto van mijzelf.">
</div>
</div>
</div>
</section>
<div class="text-center py-4">
<p>
Vandevliet Aerial Shots &copy; <!--# config timefmt="%Y" --><!--# echo var="date_local" -->
&bull; <a href="/privacy#">Privacyverklaring</a>
</p>
</div>
</footer>

View file

@ -0,0 +1,6 @@
<div class="text-center py-4">
<p>
Vandevliet Aerial Shots &copy; <!--# config timefmt='%Y' --><!--# echo var='date_local' -->
&bull; <a href="/privacy#">Privacyverklaring</a>
</p>
</div>

View file

@ -11,14 +11,19 @@
https://cdn.jsdelivr.net
https://*.fontawesome.com;
media-src 'self'
https://www.youtube.com https://youtu.be
https://www.youtube.com
https://youtu.be
https://www.linkedin.com;
frame-src 'self'
https://www.youtube.com/embed/ https://youtu.be/embed/
https://www.youtube.com/embed/
https://youtu.be/embed/
https://www.linkedin.com/embed/;
style-src 'self' 'unsafe-inline' https://*.fontawesome.com;
font-src 'self' https://*.fontawesome.com;
connect-src 'self' https://*.fontawesome.com;
style-src 'self' 'unsafe-inline'
https://*.fontawesome.com;
font-src 'self'
https://*.fontawesome.com;
connect-src 'self'
https://*.fontawesome.com;
object-src 'none';
img-src 'self' data:;
">

View file

@ -2,7 +2,7 @@
<div class="card-body">
<h3 class="card-title">Open categorie</h3>
<p class="card-text fs-4 ff-header">vanaf €350,-</p>
<p class="card-text">Geschikt voor indoor en vluchten in ongecontroleerd luchtruim met een laag risico:</p>
<p class="card-text">Geschikt voor indoor drone tours en vluchten in ongecontroleerd luchtruim met een laag risico:</p>
<ul>
<li>Bedrijfsvideo</li>
<li>Vastgoed</li>

View file

@ -1,27 +1,30 @@
<!--# set var='title' value='Vandevliet Aerial Shots' -->
<!--# set var='description' value='FPV dronevideo\'s voor bedrijven, vastgoed, recreatie, sport en evenementen' -->
<!DOCTYPE html>
<html lang="nl" data-bs-theme="dark">
<head>
<!--# include file="/includes/head.html" -->
<!--# include file='/includes/partials/head-content.html' -->
<title>Vandevliet Aerial Shots</title>
<meta name="description" content="FPV dronevideo's voor bedrijven, vastgoed, recreatie, sport en evenementen.">
<title><!--# echo var='title' --></title>
<meta name="description" content="<!--# echo var='description' -->">
<meta property="og:title" content="Vandevliet Aerial Shots">
<meta property="og:description" content="FPV dronevideo's voor bedrijven, vastgoed, recreatie, sport en evenementen.">
<meta property="og:title" content="<!--# echo var='title' -->">
<meta property="og:description" content="<!--# echo var='description' -->">
<meta property="og:type" content="website">
<meta property="og:locale" content="nl_NL">
<meta property="og:url" content="https://vandevliet-aerialshots.com">
<meta property="og:image" content="/assets/static/logo-aerialshots-v1-w.png">
</head>
<body class="has-hero">
<body class="d-flex flex-column min-vh-100">
<header>
<!--# include file="/includes/nav.html" -->
<!--# include file='/includes/components/nav.html' -->
<div class="hero position-relative overflow-hidden" style="height: 100vh;">
<div class="hero-body position-absolute bottom-0" style="z-index: 1;">
<h1 class="h5">FPV dronevideo's voor bedrijven, vastgoed, recreatie, sport en evenementen</h1>
<h1 class="lead"><!--# echo var='description' --></h1>
<p><a class="btn btn-primary" href="#diensten">Ontdek meer <i class="fa-solid fa-arrow-down"></i></a></p>
</div>
<video class="cover parallax" preload="auto" playsinline="playsinline" autoplay="autoplay" muted="muted" loop="loop">
@ -31,13 +34,11 @@
</header>
<main>
<section class="container-xxl text-center">
<h2 id="diensten">FPV drone opnames laten maken</h2>
<div class="row">
<section id="diensten" class="container-xxl text-center">
<h2>FPV drone opnames laten maken</h2>
<p>
FPV staat voor <b>First Person View</b> en levert cinematische dronebeelden op. FPV drones worden op maat gemaakt en zijn daardoor flexibel in te zetten. Ze kunnen binnen en buiten filmen, van het navigeren door fabrieken, kantoren en festivaltenten tot het achtervolgen van auto's en motorcrossers. FPV beelden vertellen een compleet verhaal in één vlucht. Vaak worden deze vluchten vastgelegd met een GoPro of vergelijkbare actiecamera. Het resultaat is <b>vloeiend, filmisch en dynamisch</b> en overtreft traditionele drone-videografie.
</p>
</div>
<div class="row">
<div class="col-sm-6 col-lg">
<div class="card h-100">
@ -112,39 +113,38 @@
</div>
</section>
<section class="container-xxl">
<section id="prijzen" class="container-xxl">
<div class="row justify-content-center text-center">
<div class="col-lg-8">
<div class="col-lg-8 mt-0">
<div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
<h2 id="prijzen" class="text-center" itemprop="name">Wat kost een dronevideo?</h2>
<h2 itemprop="name">Wat kost een dronevideo?</h2>
<p itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
<span itemprop="text">
FPV dronebeelden heb je al vanaf €350,- per vlucht. Inclusief montage en nabewerking vanaf €750,-. De uiteindelijke prijs wordt bepaald door locatie, vluchtduur en complexiteit van de eventuele montage.
</span>
</p>
</div>
<p class="text-center">
<p>
Hieronder vind je meer informatie over de verschillende categorieën en bijbehorende indicatieprijzen. Alle prijzen zijn exclusief btw, reis-, en verblijfskosten.
</p>
</div>
</div>
<div class="row justify-content-center">
<div class="col-sm-6 col-lg-4">
<!--# include file="/includes/pricing/cat-open.html" -->
<!--# include file='/includes/pricing/cat-open.html' -->
</div>
<div class="col-sm-6 col-lg-4">
<!--# include file="/includes/pricing/cat-specific.html" -->
<!--# include file='/includes/pricing/cat-specific.html' -->
</div>
</div>
<div class="row justify-content-center">
<div class="col-lg-8">
<!--# include file="/includes/pricing/post-edit.html" -->
<!--# include file='/includes/pricing/post-edit.html' -->
</div>
</div>
</section>
<section class="container-xxl">
<div id="over-mij"></div>
<section id="over-mij" class="container-xxl">
<div class="card h-100 bg-light text-dark">
<h2 class="card-title mt-4 text-center">Over mij</h2>
<div class="row g-0">
@ -184,7 +184,7 @@
<h3>Klaar om jouw verhaal te vertellen?</h3>
<p>
Ik werk vanuit Arnhem, vooral in Gelderland en omgeving. Als ZZP'er naast mijn parttime baan als software engineer kan ik flexibel werken volgens jouw planning.
Neem gerust <a href="/#contact">contact</a> op voor een vrijblijvend gesprek.
Neem gerust <a href="/contact">contact</a> op voor een vrijblijvend gesprek.
</p>
</div>
</div>
@ -193,7 +193,13 @@
</section>
</main>
<!--# include file="/includes/footer.html" -->
<footer class="bg-secondary-subtle">
<section class="container-xxl">
<!--# include file='/includes/components/contact-row.html' -->
</section>
<!--# include file='/includes/partials/footer-bottom.html' -->
</footer>
</body>
</html>

View file

@ -2,7 +2,7 @@
<html lang="nl" data-bs-theme="dark">
<head>
<!--# include file="/includes/head.html" -->
<!--# include file='/includes/partials/head-content.html' -->
<title>Privacyverklaring • Vandevliet Aerial Shots</title>
<meta name="description" content="Privacyverklaring • Vandevliet Aerial Shots">
@ -15,9 +15,9 @@
<meta property="og:image" content="/assets/static/logo-aerialshots-v1-w.png">
</head>
<body>
<body class="d-flex flex-column min-vh-100">
<header>
<!--# include file="/includes/nav.html" -->
<!--# include file='/includes/components/nav.html' -->
</header>
<main>
@ -56,7 +56,7 @@
</main>
<!--# include file="/includes/footer.html" -->
<!--# include file='/includes/footer.html' -->
</body>
</html>

View file

@ -1,24 +1,3 @@
const highlightSectionFromHash = () =>
{
const { hash } = window.location;
if (hash === '#contact')
{
const section = document.getElementById(hash.substring(1))?.parentElement;// .closest('section');
if (section)
{
setTimeout(() =>
{
section.classList.add('scrollto-highlight');
setTimeout(() => section.classList.remove('scrollto-highlight'), 1000);
}, 500);
}
}
};
window.addEventListener('hashchange', highlightSectionFromHash);
window.addEventListener('pageshow', () =>
{
/**
@ -45,23 +24,33 @@ window.addEventListener('pageshow', () =>
refreshScrollLinkedPositioningEffect();
window.addEventListener('scroll', refreshScrollLinkedPositioningEffect);
highlightSectionFromHash();
});
document.addEventListener('DOMContentLoaded', () =>
{
/**
* @type {HTMLDivElement}
*/
const navBar = document.getElementById('navbarNav');
/**
* @type {NodeListOf<HTMLAnchorElement>}
*/
const navLinks = navBar.querySelectorAll('a.nav-link');
/**
* @type {NodeListOf<HTMLElement>}
*/
const sections = document.querySelectorAll('section');
const sectionsWithId = document.querySelectorAll('section[id]');
sections.forEach(section =>
// Update nav links and add anchor links to section headers.
sectionsWithId.forEach(anchorTarget =>
{
const anchorTarget = section.querySelector('[id]');
const anchorHeader = section.querySelector('h1,h2');
/**
* @type {HTMLHeadingElement|null}
*/
const anchorHeader = anchorTarget.querySelector('h1,h2');
if (anchorTarget && anchorHeader)
// Add anchor link to section header.
if (anchorHeader)
{
const anchorLink = document.createElement('a');
anchorLink.className = 'anchor-link';
@ -72,7 +61,7 @@ document.addEventListener('DOMContentLoaded', () =>
});
// Collapse the navbar in mobile view after clicking a link.
document.querySelectorAll('#navbarNav li.nav-item>a').forEach(navLink =>
navLinks.forEach(navLink =>
{
navLink.addEventListener('click', () =>
{

View file

@ -89,12 +89,9 @@ $ff-subheader: 'Eras ITC',
var(--#{$prefix}font-sans-serif);
main {
@extend .pb-4;
padding-top: 7rem !important;
}
body.has-hero main {
@extend .pt-3;
@extend .pb-4;
@extend .flex-grow-1;
}
section,
@ -103,17 +100,17 @@ main>* {
@extend .pb-3;
}
header {
min-height: 4.5rem;
}
::selection {
@extend .text-dark;
background-color: $red-200;
}
:target::before {
content: "";
display: block;
height: 6rem;
margin-top: -6rem;
visibility: hidden;
:target {
scroll-margin-top: 4.5rem;
}
.anchor-link {
@ -321,6 +318,10 @@ img.grayscale-effect {
overflow: hidden;
}
footer .card {
background-color: var(--bs-card-bg) !important;
}
.card-img-overlay {
position: unset;
z-index: 1;