Files
cro-eng/index.html
T
2026-05-01 12:36:31 +00:00

241 lines
4.3 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>My Life in Twenty Years</title>
<style>
body {
margin:0;
font-family:Arial,sans-serif;
background:linear-gradient(to right,#4e54c8,#8f94fb);
color:white;
display:flex;
justify-content:center;
align-items:center;
height:100vh;
}
#app {
width:100%;
max-width:1200px;
}
/* 3-Spalten Layout */
.slide-layout {
display:grid;
grid-template-columns: 1fr 2fr 1fr;
align-items:center;
}
/* TEXT MITTE */
.text-content {
grid-column:2;
text-align:center;
}
h1 {font-size:70px;}
h2 {font-size:45px;}
li {font-size:28px; margin:10px 0;}
ul {
padding-left:0;
list-style-position:inside;
}
/* BILDER RECHTS */
.image-container {
grid-column:3;
display:flex;
flex-wrap:wrap;
gap:10px;
justify-content:center;
align-items:center;
}
/* 🔥 ANIMATION FIX */
.image-container img {
width:auto;
height:auto;
max-width:180px;
border-radius:10px;
opacity:0;
transform: scale(0.2) translateY(80px);
transition: all 0.8s cubic-bezier(.68,-0.55,.27,1.55);
}
/* großes Bild erste Seite */
.big-image img {
max-width:400px;
}
/* Buttons */
button {
padding:10px 20px;
font-size:18px;
margin:10px;
border:none;
border-radius:8px;
cursor:pointer;
}
#progress {
text-align:center;
margin-top:10px;
font-size:20px;
}
</style>
</head>
<body>
<div id="app">
<div id="slide-container"></div>
<div style="text-align:center;">
<button onclick="prevSlide()">Back</button>
<button onclick="nextSlide()">Next</button>
</div>
<div id="progress"></div>
</div>
<script>
// --- Slides ---
const slidesData = [
{type:"title", content:"Cro", images:[
"img1.jpg"
]},
{type:"list", title:"My Job", items:[
"I will work as a programmer!",
"I will love my job!",
"I will earn good money!"
], images:[
"img1.jpg","img2.jpg","img3.jpg","img4.jpg","img5.jpg"
]},
{type:"list", title:"My Home", items:[
"I will live in a modern house.",
"Maybe in a small city.",
"Very comfortable."
], images:[
"img1.jpg","img2.jpg","img3.jpg","img4.jpg","img5.jpg"
]},
{type:"list", title:"My Family", items:[
"Family is important.",
"I will be married.",
"I will have children."
], images:[
"img1.jpg","img2.jpg","img3.jpg","img4.jpg","img5.jpg"
]}
];
let currentSlide=0;
const container=document.getElementById('slide-container');
const progress=document.getElementById('progress');
// --- RENDER ---
function renderSlide(index){
container.innerHTML="";
const slide=slidesData[index];
const div=document.createElement('div');
div.classList.add('slide-layout');
// TEXT
const textDiv=document.createElement('div');
textDiv.classList.add('text-content');
if(slide.type==="title"){
const h1=document.createElement('h1');
h1.textContent=slide.content;
textDiv.appendChild(h1);
}
if(slide.type==="list"){
const h2=document.createElement('h2');
h2.textContent=slide.title;
textDiv.appendChild(h2);
const ul=document.createElement('ul');
slide.items.forEach(item=>{
const li=document.createElement('li');
li.textContent=item;
ul.appendChild(li);
});
textDiv.appendChild(ul);
}
// BILDER
const imgDiv=document.createElement('div');
imgDiv.classList.add('image-container');
if(index===0){
imgDiv.classList.add('big-image');
}
if(slide.images){
slide.images.forEach((src,i)=>{
const img=document.createElement('img');
img.src=src;
imgDiv.appendChild(img);
// 🔥 FIXED ANIMATION
setTimeout(()=>{
requestAnimationFrame(()=>{
img.style.opacity=1;
img.style.transform="scale(1) translateY(0)";
});
}, i*180);
});
}
div.appendChild(textDiv);
div.appendChild(imgDiv);
container.appendChild(div);
progress.textContent=`Slide ${index+1} / ${slidesData.length}`;
}
// --- NAVIGATION ---
function nextSlide(){
if(currentSlide<slidesData.length-1){
currentSlide++;
renderSlide(currentSlide);
}
}
function prevSlide(){
if(currentSlide>0){
currentSlide--;
renderSlide(currentSlide);
}
}
// KEYBOARD
document.addEventListener('keydown', e=>{
if(e.key==="ArrowRight") nextSlide();
if(e.key==="ArrowLeft") prevSlide();
});
// START
renderSlide(currentSlide);
</script>
</body>
</html>