3D Picture Carousel
Bilder Karussell mit Manuelen vor und zurück Buttons
Der hier verwendete Code
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>3D Picture Carousel JavaScript CSS3</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
*{margin:0; padding: 0;}
section, footer, nav {
display: block;
}
body {
font-family: 'Helvetica Neue', Arial, sans-serif;
color: #333;
padding: 0px;
overflow: hidden;
background-image: -webkit-linear-gradient(270deg,rgba(0,0,0,1.00) 0%,rgba(67,0,125,1.00) 49.22%,rgba(26,0,255,1.00) 100%);
background-image: -moz-linear-gradient(270deg,rgba(0,0,0,1.00) 0%,rgba(67,0,125,1.00) 49.22%,rgba(26,0,255,1.00) 100%);
background-image: -o-linear-gradient(270deg,rgba(0,0,0,1.00) 0%,rgba(67,0,125,1.00) 49.22%,rgba(26,0,255,1.00) 100%);
background-image: linear-gradient(180deg,rgba(0,0,0,1.00) 0%,rgba(67,0,125,1.00) 49.22%,rgba(26,0,255,1.00) 100%);
background-attachment: fixed;
}
/*Ändere hier die Höhe und Breite des Bildes das muss auch in Javascript angepasst werden panelSize*/
.container {
position: relative;
margin: 0 auto;
width: 13vw;
height: 13vw;
perspective: 1000px;
perspective-origin: 100px -100px;
}
#carousel {
width: 100%;
height: 100%;
position: absolute;
transform-style: preserve-3d;
transform: rotateY(0deg);
}
#carousel figure {
display: block;
position: absolute;
width: 100%;
height: 100%;
outline: 1px solid black;
color: white;
text-align: center;
}
.center{text-align: center;
margin: 20px auto 50px;
}
figure img{cursor: pointer;}
iframe{ width: 700px; height: 8em; margin: auto; text-align: center; display: block; border:none;}
</style>
</head>
<body>
<form>
<p class="center">
<input type=button onClick="history.go(-1)" value="vorige Seite"> <input type="button" value=" prev" onClick="zurueck()">
<input type="button" value="next" onClick="weiter()" >
</p>
</form>
<div class="container">
<div id="carousel">
<!--nicht vergessen TweenMax von greensock wird benutzt-->
<script type="text/javascript" src="https://www.on-design.de/Scripts/TweenMax.min.js"></script>
<script language="javascript">
var tz;
//der folgende Wert ist die viewportBreite wenn er geändert wird, muss er auch im CSS bei .container geändert werden. 13vw ist Prozent entspricht der Muliplikation mit 0.13
var panelSize = document.documentElement.clientWidth*0.13;
var numberOfPanels = 12; //gebe hier die Anzahl der Bilder ein.
var degree = 360/numberOfPanels;
var count=0;
tz = Math.round( ( panelSize / 2 ) /
Math.tan( Math.PI / numberOfPanels ) );
for(i=0; i<numberOfPanels;i++){
/*
das folgende Script erzeugt folgendes HTML mit Durchnummerierung hier die url zu den Bildern ändern
<figure class="bild"><img src="img/paint/1.jpg" width="200" alt="Painting by Michael Albers" onClick="goBild(0)"/> </figure> */
document.write("<figure class='bild'><img src='https://basti1012.bplaced.net/image/"+(i+1)+".png' width='"+panelSize+"' alt='Painting by Michael Albers' onClick='goBild("+(i)+")'/></figure>");
/* document.getElementsByClassName("bild")[i].style.background = "hsla("+ (i*degree)+", 100%, 50%, 0.8 )"; */
document.getElementsByClassName("bild")[i].style.transform = "rotateY("+(i*degree)+"deg) translateZ("+tz+"px)";
document.getElementsByClassName("bild")[i].firstChild.nodeValue = (i+1);
}
function weiter(){
count++;
var counter = Math.round(-count*degree);
TweenMax.to("#carousel", 1, {rotationY:counter});
}
function zurueck(){
count--;
var counter = Math.round(-count*degree);
TweenMax.to("#carousel", 1, {rotationY:counter});
}
function drehen(){
TweenMax.to("figure", 1,{rotationY:180});
TweenMax.to("#carousel", 1,{rotationX:90});
}
function goBild(seite){
count = seite;
var counter = Math.round(-count*degree)
TweenMax.to("#carousel", 1, {rotationY:counter});
}
</script>
</div>
</div>
</body>
</html>