Show sourcecode
The following files exists in this folder. Click to view.
comments.php
exercises/
exercises.php
img/
incl/
index-no-include.php
index.php
source.php
style/
viewsource.php
index.php
104 lines UTF-8 Windows (CRLF)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
<?php
include("incl/config.php");
$title = "Webbserv1 :Start";
$pageId = "start";
$pageStyle = '
';
?>
<?php include("incl/header.php"); ?>
<div class="ambient-background" aria-hidden="true">
<div class="bg-grid"></div>
<div class="orb orb-one"></div>
<div class="orb orb-two"></div>
<div class="orb orb-three"></div>
<div class="orb orb-four"></div>
</div>
<!-- sidans huvudinnehåll -->
<div id="content" class="start-page">
<article class="start-article">
<section class="hero-panel">
<div class="hero-copy reveal">
<p class="eyebrow">Webbserverprogrammering 1</p>
<h1>Bygg, lär och experimentera med webben.</h1>
<p>Hej och välkommen till Elton samlingssida i kursen webbserverprogrammering 1. Här finns övningar, reflektioner och små projekt som visar hur HTML, CSS och PHP kan skapa något riktigt coolt och användbart.</p>
<div class="hero-actions">
<a href="exercises.php" class="primary-btn reveal reveal-delay-1">Se övningar</a>
<a href="comments.php" class="secondary-btn reveal reveal-delay-2">Läs reflektioner</a>
</div>
</div>
<figure class="portrait-figure reveal reveal-delay-3">
<img id="eltonbild1" src="img/eltonbild1.jpg" alt="Elton">
<figcaption>
<p>Elton</p>
</figcaption>
</figure>
</section>
<section class="feature-grid">
<div class="feature-card reveal reveal-delay-1">
<span class="card-icon">01</span>
<h2>HTML & CSS</h2>
<p>Skapa tydliga, responsiva och vackra sidor med moderna layouter och stilprinciper.</p>
</div>
<div class="feature-card reveal reveal-delay-2">
<span class="card-icon">02</span>
<h2>PHP</h2>
<p>Lär dig hur server-side kod kan skapa dynamiska sidor och strukturera innehåll smart.</p>
</div>
<div class="feature-card reveal reveal-delay-3">
<span class="card-icon">03</span>
<h2>Experiment</h2>
<p>Utforska, testa och bygg vidare med kod som ger kreativ frihet och lärande i praktiken.</p>
</div>
</section>
</article>
</div>
<script>
const revealItems = document.querySelectorAll('.reveal');
const revealObserver = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
if (entry.isIntersecting) {
entry.target.classList.add('is-visible');
}
});
}, {
threshold: 0.18,
rootMargin: '0px 0px -8% 0px'
});
revealItems.forEach((item) => revealObserver.observe(item));
const orbs = document.querySelectorAll('.orb');
function updateOrbEffects() {
const vh = window.innerHeight;
const scrollY = window.scrollY;
orbs.forEach((orb, index) => {
const rect = orb.getBoundingClientRect();
const center = rect.top + rect.height / 2;
const distanceFromCenter = Math.abs(center - (vh / 2));
const fadeStrength = Math.max(0, 1 - (distanceFromCenter / (vh * 0.9)));
const alpha = (0.12 + fadeStrength * 0.88).toFixed(3);
const drift = scrollY * (0.04 + index * 0.015) * (index % 2 === 0 ? 1 : -1);
const yShift = scrollY * (0.08 + index * 0.02);
orb.style.opacity = alpha;
orb.style.transform = `translate3d(${drift}px, ${yShift}px, 0) scale(${1 + fadeStrength * 0.18})`;
orb.style.filter = `blur(${8 + (1 - fadeStrength) * 14}px)`;
});
}
updateOrbEffects();
window.addEventListener('scroll', updateOrbEffects, { passive: true });
window.addEventListener('resize', updateOrbEffects);
</script>
<?php include("incl/footer.php"); ?>