Skip to content

Instantly share code, notes, and snippets.

@feo52
Last active February 13, 2016 15:00
Show Gist options
  • Save feo52/9bd3eb77564ebac11097 to your computer and use it in GitHub Desktop.
Save feo52/9bd3eb77564ebac11097 to your computer and use it in GitHub Desktop.
Pure CSS Slider
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css" />
<style>
.sliderFrame {
display: inline-block;
width: 160px; /* Overwrite */
height: 120px; /* Overwrite */
}
</style>
</head>
<body>
<div class="sliderFrame">
<img class="slider" src="http://placehold.jp/ff0000/ffffff/160x120.png" />
<img class="slider" src="http://placehold.jp/00ff00/ffffff/160x120.png" />
<img class="slider" src="http://placehold.jp/0000ff/ffffff/160x120.png" />
<img class="slider" src="http://placehold.jp/ffff00/ffffff/160x120.png" />
<img class="slider" src="http://placehold.jp/00ffff/ffffff/160x120.png" />
<img class="slider" src="http://placehold.jp/ff00ff/ffffff/160x120.png" />
</div>
<br />
<div class="sliderFrame">
<a href="#dummy61" class="slider"><img src="http://placehold.jp/ff0000/ffffff/160x120.png" /></a>
<a href="#dummy62" class="slider"><img src="http://placehold.jp/00ff00/ffffff/160x120.png" /></a>
<a href="#dummy63" class="slider"><img src="http://placehold.jp/0000ff/ffffff/160x120.png" /></a>
<a href="#dummy64" class="slider"><img src="http://placehold.jp/ffff00/ffffff/160x120.png" /></a>
<a href="#dummy65" class="slider"><img src="http://placehold.jp/00ffff/ffffff/160x120.png" /></a>
<a href="#dummy66" class="slider"><img src="http://placehold.jp/ff00ff/ffffff/160x120.png" /></a>
</div>
</body>
</html>
/* ------------------------------------------------------------------------------------------------------------------------------------
Pure CSS Slider
---------------------------------------------------------------------------------------------------------------------------------------
| i = the number of images |
| Xs = display time of image ( one image ) |
| Ys = display time of total ( all image ) { = Xs * i } |
| Zs = slide ( fade ) time |
+---------------+------------------------------------+------------------------------------+-------------------------------------------+
| [ Example ] | (Zs / Ys) * 100% | (Xs / Ys) * 100% | ((Xs + Zs) / Ys) * 100% |
+---------------+------------------------------------+------------------------------------+-------------------------------------------+
| [ 2 images ] | 10% = (1s / 10s) * 100% | 50% = (5s / 10s) * 100% | 60% = ((5s + 1s) / 10s) * 100% |
| [ 3 images ] | 6.6666666666% = (1s / 15s) * 100% | 33.3333333333% = (5s / 15s) * 100% | 40% = ((5s + 1s) / 15s) * 100% |
| [ 4 images ] | 5% = (1s / 20s) * 100% | 25% = (5s / 20s) * 100% | 30% = ((5s + 1s) / 20s) * 100% |
| [ 5 images ] | 4% = (1s / 25s) * 100% | 20% = (5s / 25s) * 100% | 24% = ((5s + 1s) / 25s) * 100% |
| [ 6 images ] | 3.3333333333% = (1s / 30s) * 100% | 16.6666666666% = (5s / 30s) * 100% | 20% = ((5s + 1s) / 30s) * 100% |
+---------------+------------------------------------+------------------------------------+-------------------------------------------+
| [ 7 images ] | 2.8571428571% = (1s / 35s) * 100% | 14.2857142857% = (5s / 35s) * 100% | 17.1428571429% = ((5s + 1s) / 35s) * 100% |
| [ 8 images ] | 2.5% = (1s / 40s) * 100% | 12.5% = (5s / 40s) * 100% | 15% = ((5s + 1s) / 40s) * 100% |
| [ 9 images ] | 2.2222222222% = (1s / 45s) * 100% | 11.1111111111% = (5s / 45s) * 100% | 13.3333333333% = ((5s + 1s) / 45s) * 100% |
| [ 10 images ] | 2% = (1s / 50s) * 100% | 10% = (5s / 50s) * 100% | 12% = ((5s + 1s) / 50s) * 100% |
| [ 11 images ] | 1.8181818181% = (1s / 55s) * 100% | 9.0909090909% = (5s / 55s) * 100% | 10.0909090909% = ((5s + 1s) / 55s) * 100% |
+---------------+------------------------------------+------------------------------------+-------------------------------------------+
| [ 12 images ] | 1.6666666666% = (1s / 60s) * 100% | 8.3333333333% = (5s / 60s) * 100% | 10% = ((5s + 1s) / 60s) * 100% |
| [ 13 images ] | 1.5384615384% = (1s / 65s) * 100% | 7.6923076923% = (5s / 65s) * 100% | 9.2307692307% = ((5s + 1s) / 65s) * 100% |
| [ 14 images ] | 1.4285714285% = (1s / 70s) * 100% | 7.1428571428% = (5s / 70s) * 100% | 8.5714285714% = ((5s + 1s) / 70s) * 100% |
| [ 15 images ] | 1.3333333333% = (1s / 75s) * 100% | 6.6666666666% = (5s / 75s) * 100% | 1.3333333333% = ((5s + 1s) / 75s) * 100% |
| [ 16 images ] | 1.25% = (1s / 80s) * 100% | 6.25% = (5s / 80s) * 100% | 7.5% = ((5s + 1s) / 80s) * 100% |
+---------------+------------------------------------+------------------------------------+-------------------------------------------+ */
/* ---------------------------------------------------------- */
/* Container */
/* ---------------------------------------------------------- */
.sliderFrame { position: relative; overflow: hidden; width: 640px; height: 480px; }
.sliderFrame > a { width: 100%; height: 100%; }
.sliderFrame img { width: 100%; height: auto; }
/* ---------------------------------------------------------- */
/* Initial */
/* ---------------------------------------------------------- */
/* Horizontal */
.sliderFrame .slider { position: absolute; left:-100%; }
/* Vertical */
//.sliderFrame .slider { position: absolute; top: -100%; }
/* Crossfade */
//.sliderFrame .slider { position: absolute; opacity: 0; visibility: hidden; }
/* ---------------------------------------------------------- */
/* TotalTime */
/* ---------------------------------------------------------- */
.sliderFrame .slider { animation: slider infinite 30s; }
/* ---------------------------------------------------------- */
/* Delay */
/* ---------------------------------------------------------- */
.sliderFrame .slider:nth-of-type(1) { animation-delay: -1s; }
.sliderFrame .slider:nth-of-type(2) { animation-delay: 4s; }
.sliderFrame .slider:nth-of-type(3) { animation-delay: 9s; }
.sliderFrame .slider:nth-of-type(4) { animation-delay: 14s; }
.sliderFrame .slider:nth-of-type(5) { animation-delay: 19s; }
.sliderFrame .slider:nth-of-type(6) { animation-delay: 24s; }
/* ---------------------------------------------------------- */
/* Pause */
/* ---------------------------------------------------------- */
.sliderFrame:hover .slider { animation-play-state: paused; }
/* ---------------------------------------------------------- */
/* Keyframes */
/* ---------------------------------------------------------- */
/* Horizontal */
@keyframes slider { 0%{left:-100%;} 3.3333333333%{left: 0%;} 16.6666666666%{left: 0%;} 20%{left: 100%;} 100%{left: 100%;} }
/* Vertical */
//@keyframes slider { 0%{top: -100%;} 3.3333333333%{top: 0%;} 16.6666666666%{top: 0%;} 20%{top: 100%;} 100%{top: 100%;} }
/* Crossfade */
//@keyframes slider { 0%{opacity: 0; visibility: hidden;} 3.3333333333%{opacity: 1; visibility:visible;} 16.6666666666%{opacity: 1; visibility:visible;} 20%{opacity: 0; visibility: hidden;} 100%{opacity: 0; visibility: hidden;} }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment