<!DOCTYPE html>
<html>
<head>
<title>Image Gallery</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<input type="radio" name="control" id="b1" checked>
<input type="radio" name="control" id="b2">
<input type="radio" name="control" id="b3">
<input type="radio" name="control" id="b4">
<input type="radio" name="control" id="b5">
<input type="radio" name="control" id="b6">
<input type="radio" name="control" id="b7">
<input type="radio" name="control" id="b8">
<input type="radio" name="control" id="b9">
<input type="radio" name="control" id="b10">
<div class="content">
<div class="controls">
<label for="b1"></label>
<label for="b2"></label>
<label for="b3"></label>
<label for="b4"></label>
<label for="b5"></label>
<label for="b6"></label>
<label for="b7"></label>
<label for="b8"></label>
<label for="b9"></label>
<label for="b10"></label>
</div>
<div class="thumbnails">
<label for="b1"></label>
<label for="b2"></label>
<label for="b3"></label>
<label for="b4"></label>
<label for="b5"></label>
<label for="b6"></label>
<label for="b7"></label>
<label for="b8"></label>
<label for="b9"></label>
<label for="b10"></label>
</div>
</div>
<script>
const slides = document.querySelectorAll('input[type="radio"]');
const slideInterval = 3000; // Change this to adjust the slide duration
let currentSlide = 0;
function startSlideshow() {
setInterval(() => {
slides[currentSlide].checked = false;
currentSlide = (currentSlide + 1) % slides.length;
slides[currentSlide].checked = true;
}, slideInterval);
}
// Start the slideshow automatically
startSlideshow();
</script>
</body>
</html>
body {
margin: 0;
padding: 0;
width: 100vw;
height: 100vh;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
background-size: cover;
background-position: center center;
background-image: var(--img, url(https://cdn.josetxu.com/img/gp-fisura-saqueadores.jpg));
transition: background 0.5s ease 0s;
}
body:before {
content: "";
position: absolute;
width: 100%;
height: 100%;
background: #000000c9;
z-index: 0;
}
.content {
width: 60vmin;
height: 60vmin;
display: flex;
align-items: center;
justify-content: center;
background-size: cover;
background-position: center center;
background-image: var(--img, url(https://cdn.josetxu.com/img/gp-fisura-saqueadores.jpg));
transition: background 0.5s ease 0s;
max-width: 500px;
max-height: 500px;
box-shadow: 0 0 0vmin 1vmin #fff, 0 0 10vmin 5vmin #000;
border-radius: 2px;
z-index: 0;
background-color: #fff;
}
.content:before {
content: "cuadernodeescaladas.com";
position: absolute;
width: 100%;
text-align: center;
margin-bottom: -55vmin;
text-shadow: -1px -1px 0 #0007;
color: #fff4;
font-size: 18px;
}
/* CONTROLS */
.controls {
width: 100vw;
height: 100vh;
overflow: hidden;
display: flex;
justify-content: flex-end;
flex-direction: row;
flex-wrap: wrap;
position: absolute;
}
input[type=radio] {
display: none;
}
label {
width: 50vw;
height: 100vh;
position: relative;
cursor: pointer;
opacity: 0.15;
}
label:hover {
opacity: 1;
}
input:first-child:checked ~ .content .controls label:first-child,
input:last-of-type:checked ~ .content .controls label:last-of-type {
cursor: default;
opacity: 0.025;
}
/* HIDE LABELS */
#b2:checked ~ .content .controls label[for=b2],
#b3:checked ~ .content .controls label[for=b3],
#b4:checked ~ .content .controls label[for=b4],
#b5:checked ~ .content .controls label[for=b5],
#b6:checked ~ .content .controls label[for=b6],
#b7:checked ~ .content .controls label[for=b7],
#b8:checked ~ .content .controls label[for=b8],
#b9:checked ~ .content .controls label[for=b9],
#b3:checked ~ .content .controls label[for=b1],
#b4:checked ~ .content .controls label[for=b1],
#b4:checked ~ .content .controls label[for=b2],
#b5:checked ~ .content .controls label[for=b1],
#b5:checked ~ .content .controls label[for=b2],
#b5:checked ~ .content .controls label[for=b3],
#b6:checked ~ .content .controls label[for=b1],
#b6:checked ~ .content .controls label[for=b2],
#b6:checked ~ .content .controls label[for=b3],
#b6:checked ~ .content .controls label[for=b4],
#b7:checked ~ .content .controls label[for=b1],
#b7:checked ~ .content .controls label[for=b2],
#b7:checked ~ .content .controls label[for=b3],
#b7:checked ~ .content .controls label[for=b4],
#b7:checked ~ .content .controls label[for=b5],
#b8:checked ~ .content .controls label[for=b1],
#b8:checked ~ .content .controls label[for=b2],
#b8:checked ~ .content .controls label[for=b3],
#b8:checked ~ .content .controls label[for=b4],
#b8:checked ~ .content .controls label[for=b5],
#b8:checked ~ .content .controls label[for=b6],
#b9:checked ~ .content .controls label[for=b1],
#b9:checked ~ .content .controls label[for=b2],
#b9:checked ~ .content .controls label[for=b3],
#b9:checked ~ .content .controls label[for=b4],
#b9:checked ~ .content .controls label[for=b5],
#b9:checked ~ .content .controls label[for=b6],
#b9:checked ~ .content .controls label[for=b7],
#b10:checked ~ .content .controls label[for=b1] ,
#b10:checked ~ .content .controls label[for=b2] ,
#b10:checked ~ .content .controls label[for=b3] ,
#b10:checked ~ .content .controls label[for=b4] ,
#b10:checked ~ .content .controls label[for=b5] ,
#b10:checked ~ .content .controls label[for=b6] ,
#b10:checked ~ .content .controls label[for=b7] ,
#b10:checked ~ .content .controls label[for=b8] {
display: none;
}
/* ARROWS */
label:before {
content: "";
position: absolute;
background:
linear-gradient(30deg, #fff0 60%, #fff calc(60% + 1px)),
linear-gradient(-30deg, #fff 40%, #fff0 calc(40% + 1px)),
linear-gradient(-90deg, #fff0 70%, #fff calc(70% + 1px));
width: 6vmin;
height: 6vmin;
border-radius: 5px;
right: 7vmin;
top: calc(50% - 3vmin);
}
/* LEFT ARROW */
#b1:checked ~ .content .controls label[for=b1]:before,
#b2:checked ~ .content .controls label[for=b1]:before,
#b3:checked ~ .content .controls label[for=b2]:before,
#b4:checked ~ .content .controls label[for=b3]:before,
#b5:checked ~ .content .controls label[for=b4]:before,
#b6:checked ~ .content .controls label[for=b5]:before,
#b7:checked ~ .content .controls label[for=b6]:before,
#b8:checked ~ .content .controls label[for=b7]:before,
#b9:checked ~ .content .controls label[for=b8]:before,
#b10:checked ~ .content .controls label[for=b9]:before {
left: 7vmin;
transform: rotate(180deg);
}
/* TITLES */
body:after {
content: "Saqueadores de Conventos (6b+) \a RISCO DE LOS SAQUEADORES";
position: absolute;
top: 2vh;
color: #fff;
font-size: 35px;
line-height: 45px;
transition: all 0.5s ease 0s;
text-shadow: 0px 1px 0 #000000d9;
white-space: pre-wrap;
text-align: center;
width: 100vw;
padding: 1vmin;
background: #ffffff05;
font-weight: 300;
}
body:has(input#b1:checked):after {
content: "Saqueadores de Conventos (6b+) \a RISCO DE LOS SAQUEADORES";
}
body:has(input#b2:checked):after {
content: "Lucas (A2/V+) \a EL HUESO";
}
body:has(input#b3:checked):after {
content: "El blues de los ojos bonitos (6a+) \a TRES CORONAS";
}
body:has(input#b4:checked):after {
content: "Perros Salvajes (A4) \a EL GRAN MOLONDRIO";
}
body:has(input#b5:checked):after {
content: "To\00F1 in (7b) \a ROC\00D3 DROMO";
}
body:has(input#b6:checked):after {
content: "El Clan de los Osos (A2) \a EL PANDEMONIUM";
}
body:has(input#b7:checked):after {
content: "Oscar y Raul (V+/6a) \a HUECO DE LAS HOCES";
}
body:has(input#b8:checked):after {
content: "Me pesa hasta el aire (A2/?) \a RISCO DE LA DEHESILLA";
}
body:has(input#b9:checked):after {
content: "Diedro (6b) \a RISCO DE LA MEZQUITA";
}
body:has(input#b10:checked):after {
content: "Biafra (6a+/A2) \a EL HUESO";
}
/*** THUMBNAILS ***/
.thumbnails {
position: absolute;
background: #ffffff05;
width: 100vw;
bottom: 3vh;
text-align: center;
padding: 1vmin;
}
.thumbnails label {
background-color: #0008;
position: relative;
width: 8vmin;
height: 8vmin;
display: inline-block;
margin-left: 1vw;
background-image: var(--img);
background-size: cover;
background-position: center;
opacity: 0.5;
border-radius: 2px;
}
/* IMAGES / THUMBNAILS */
body:has(input#b1:checked), .thumbnails label[for=b1] {
--img: url(https://cdn.josetxu.com/img/gp-fisura-saqueadores.jpg);
}
body:has(input#b2:checked), .thumbnails label[for=b2] {
--img: url(https://cdn.josetxu.com/img/gp-lucas-hueso.jpg);
}
body:has(input#b3:checked), .thumbnails label[for=b3] {
--img: url(https://cdn.josetxu.com/img/gp-blues-ojos-bonitos-tres-coronas.jpg);
}
body:has(input#b4:checked), .thumbnails label[for=b4] {
--img: url(https://cdn.josetxu.com/img/gp-perros-salvajes-gran-molondrio.jpg);
}
body:has(input#b5:checked), .thumbnails label[for=b5] {
--img: url(https://cdn.josetxu.com/img/gp-tonin-rocodromo.jpg);
}
body:has(input#b6:checked), .thumbnails label[for=b6] {
--img: url(https://cdn.josetxu.com/img/gp-clan-de-los-osos-pandemonium.jpg);
}
body:has(input#b7:checked), .thumbnails label[for=b7] {
--img: url(https://cdn.josetxu.com/img/gp-oscar-raul-hueco-hoces2.jpg);
}
body:has(input#b8:checked), .thumbnails label[for=b8] {
--img: url(https://cdn.josetxu.com/img/gp-me-pesa-hasta-el-aire-dehesilla.jpg);
}
body:has(input#b9:checked), .thumbnails label[for=b9] {
--img: url(https://cdn.josetxu.com/img/gp-diedro-mezquita.jpg);
}
body:has(input#b10:checked), .thumbnails label[for=b10] {
--img: url(https://cdn.josetxu.com/img/gp-biafra-hueso.jpg);
}
.thumbnails label:before { display: none; }
.thumbnails label:hover { opacity: 1; }
.thumbnails label:first-child { margin-left: 0; }
#b1:checked ~ .content .thumbnails label[for=b1],
#b2:checked ~ .content .thumbnails label[for=b2],
#b3:checked ~ .content .thumbnails label[for=b3],
#b4:checked ~ .content .thumbnails label[for=b4],
#b5:checked ~ .content .thumbnails label[for=b5],
#b6:checked ~ .content .thumbnails label[for=b6],
#b7:checked ~ .content .thumbnails label[for=b7],
#b8:checked ~ .content .thumbnails label[for=b8],
#b9:checked ~ .content .thumbnails label[for=b9],
#b10:checked ~ .content .thumbnails label[for=b10] {
opacity: 1;
box-shadow: 0 0 0.01vmin 0.5vmin #fff;
}
/* MEDIA QUERIES */
@media only screen and (max-width:767px) {
body:after {
top: 2vh;
font-size: 20px;
white-space: initial;
}
}
@media only screen and (max-width:580px) {
body:after {
font-size: 25px;
white-space: pre-wrap;
}
}
/* BROWSER SUPPORT */
.firefox {
background: #0008;
color: #fff;
position: absolute;
top: 45vh;
width: 45vmin;
padding: 2vmin 3vmin;
border-radius: 5px;
text-align: center;
font-size: 24px;
}
.firefox span code {
font-size: 24px;
background: #0008;
padding: 0 10px;
border-radius: 25px;
}
@supports (-webkit-font-smoothing: antialiased) {
.firefox {
display: none;
}
}