switch to mobile ready slider

main
yova 3 years ago
parent ef037421e3
commit df25a643fd

@ -1,5 +1,4 @@
<script src="/contact-form/jquery-3.6.0.min.js"></script>
<script src="/contact-form/form.js"></script>
<style>
@ -7,4 +6,79 @@
margin-top: 1.5rem;
margin-bottom: 3.5rem;
}
.screenshot img {
max-width: 250px;
/* Screenshots slider won't work fine without disabling image selection and dragging */
user-select: none;
pointer-events: none;
}
/**
* (optional) define here the style definitions which should be applied on the slider container
* e.g. width including further controls like arrows etc.
*/
.slider {
position: relative;
direction: ltr;
}
.frame {
/**
* (optional) wrapper width, specifies width of the slider frame.
*/
position: relative;
font-size: 0;
line-height: 0;
overflow: hidden;
white-space: nowrap;
margin: 0 30px;
}
.slides {
position: relative;
display: inline-block;
vertical-align: middle;
margin: 10px;
}
.slides li {
position: relative;
display: inline-block;
}
.screenshot {
position: relative;
display: inline-block;
vertical-align: middle;
margin: 10px;
}
.prev, .next {
position: absolute;
top: 50%;
margin-top: -25px;
display: block;
cursor: pointer;
}
.next {
right: 0;
}
.prev {
left: 0;
}
.next svg, .prev svg {
width: 25px;
}
</style>

@ -21,7 +21,7 @@
<ul style="margin-top: 0em;">
<li>Original <a href="https://github.com/janraasch/hugo-product-launch/">Design</a> template by <a href="https://www.janraasch.com" title="Jan Raasch">Jan Raasch</a></li>
<li>Contact form backend by <a href="http://reusableforms.com/d/o5/html5-contact-form-send-email">reusableforms.com</a></li>
<li>Image slider from <a href="https://ebene11.com/imageslider-ohne-javascript">ebene11.com</a></li>
<li>Image slider <a href="http://loryjs.github.io/lory/">loryjs</a></li>
</ul>
</div>
{{ end }}

@ -1,166 +1,44 @@
<!-- zuerst das Sichtfenster -->
<style>
.sliderElements,
.sliderElements figure,
.sliderControls {
margin: 0;
}
.sliderElements:after {
content: ".";
display: block;
height: .1px;
clear: both;
visibility: hidden;
font-size: 0;
overflow: hidden;
}
<div id="screenshots" class="js_slides screenshots">
<div class="frame js_frame">
<ul class="slides js_slides gallery">
<li class="js_slide screenshot"><img src="/images/screenshots/Screenshot_20211018-202224_Trebuchet.png" width=250px alt="" ></li>
<li class="js_slide screenshot"><img src="/images/screenshots/Screenshot_20211018-202245_Trebuchet.png" width=250px alt=""></li>
<li class="js_slide screenshot "><img src="/images/screenshots/Screenshot_20211015-213151_OsmAnd~.png" width=250px alt=""></li>
<li class="js_slide screenshot"><img src="/images/screenshots/Screenshot_20211018-203310_Tor_Browser.png" width=250px></li>
</ul>
</div>
<span class="js_prev slider_nav prev" >
<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 501.5 501.5"><g><path fill="#2E435A" d="M302.67 90.877l55.77 55.508L254.575 250.75 358.44 355.116l-55.77 55.506L143.56 250.75z"/></g></svg>
</span>
<span class="js_next slider_nav next">
<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 501.5 501.5"><g><path fill="#2E435A" d="M199.33 410.622l-55.77-55.508L247.425 250.75 143.56 146.384l55.77-55.507L358.44 250.75z"/></g></svg>
</span>
.cssSlider {
overflow-x: hidden;
}
.sliderElements {
list-style: none;
position: relative;
left: 0;
width: 400%;
margin-bottom: .8em;
padding: 0;
-webkit-transition: left .8s ease-in-out;
-moz-transition: left .8s ease-in-out;
-o-transition: left .8s ease-in-out;
transition: left .8s ease-in-out;
}
.sliderElements > li {
float: left;
width: 25%;
position: relative;
}
#slide02:checked ~ .sliderElements {
left: -100%;
}
#slide03:checked ~ .sliderElements {
left: -200%;
}
#slide04:checked ~ .sliderElements {
left: -300%;
}
/* Bildunterschrift auf dem Bild positionieren */
.sliderElements figcaption {
display: block;
color: #fff;
position: absolute;
left: 0;
bottom: 1em;
padding: .4em;
background: rgba(0,0,0,.5);
}
/* Bilder responsive */
.sliderElements img {
width: auto;
max-height: 40em;
margin-left: auto;
margin-right: auto;
}
/* inputs aus dem Blickfeld schieben */
.cssSlider input {
position: absolute;
left: -99999px;
}
/* mittige Ausrichtung der Controls - funktioniert im Zusammenspiel mit inline-block */
.sliderControls {
text-align: center;
}
/* Controls nebeneinander bringen */
.sliderControls li {
display: inline-block;
}
/* Controls auf einheitliche Maße bringen und die Ecken abrunden */
.sliderControls label {
width: 20px;
height: 20px;
line-height: 20px;
text-align: center;
border-radius: 50%;
display: block;
cursor: pointer;
background: #68B022;
color: #68B022;
}
/* Attributselektor und indirekter Nachfahrkombinator zum ansteuern der labels */
.sliderControls label:hover,
#slide01:checked ~ .sliderControls label[for="slide01"],
#slide02:checked ~ .sliderControls label[for="slide02"],
#slide03:checked ~ .sliderControls label[for="slide03"],
#slide04:checked ~ .sliderControls label[for="slide04"] {
background: #ddd;
color: #ddd;
}
.prose ul > li::before {
content: none;
}
</style>
</div>
<script src="lory.min.js"></script>
<div class="cssSlider" title="Auf die grünen Punkte klicken für weitere Screenshots">
<script>
window.addEventListener('load', function () {
var slider = document.getElementById('screenshots');
if (slider == null) {
return;
}
<!-- die inputs um den Slider zu Steuern -->
<input type="radio" name="slider" id="slide01" checked="checked">
<input type="radio" name="slider" id="slide02">
<input type="radio" name="slider" id="slide03">
<input type="radio" name="slider" id="slide04">
// This class is used to display the entire slideshow differently if JS
// is enabled. The absense of the 'slider' class will force all images
// to be shown in a grid. The presence of it will show them inline and
// hide those which don't fit.
slider.className = slider.className + ' slider';
var toShow = slider.querySelectorAll('.slider_nav');
for (var i = 0; i < toShow.length; i ++) {
toShow[i].style.display = 'block';
}
<!-- die einzelnen Slides, hier als Liste angelegt -->
<ul class="sliderElements">
<li>
<figure>
<img src="/images/screenshots/Screenshot_20211018-202224_Trebuchet.png" alt="">
<figcaption>Der Trebauchet Launcher von LineageOS besticht durch seine Aufgeräumtheit.</figcaption>
</figure>
</li>
<li>
<figure>
<img src="/images/screenshots/Screenshot_20211018-202245_Trebuchet.png" alt="">
<figcaption>Die wichtigsten Apps sind vorinstalliert.</figcaption>
</figure>
</li>
<li>
<figure>
<img src="/images/screenshots/Screenshot_20211015-213151_OsmAnd~.png" alt="">
<figcaption>Der freie offline Navigator OSMAnd.</figcaption>
</figure>
</li>
<li>
<figure>
<img src="/images/screenshots/Screenshot_20211018-203310_Tor_Browser.png">
<figcaption>Eine gesicherte Privatssphäre mit dem Tor Browser.</figcaption>
</figure>
</li>
</ul>
lory(slider, {rewind: true, enableMouseEvents: true});
});
<!-- Eine Steuerung -->
<ul class="sliderControls">
<li><label for="slide01">1</label></li>
<li><label for="slide02">2</label></li>
<li><label for="slide03">3</label></li>
<li><label for="slide04">4</label></li>
</ul>
</div>
</script>

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save