slider.js.org
Version:
Slider.js - the simplest native javascript plugin
92 lines (83 loc) • 2 kB
CSS
[data-slider] {
width: 100%;
height: 100%;
position: relative;
overflow: hidden;
}
[data-slider] .slide {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
transition-timing-function: ease-in;
}
[data-slider] .arrows .prev,
[data-slider] .arrows .next {
width: 32px;
height: 32px;
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><path fill='rgb(255,255,255)' d='M16 0C7.2 0 0 7.2 0 16s7.2 16 16 16 16-7.2 16-16S24.8 0 16 0zm-1.1 24.5c-1-1-1.9-2-2.9-2.9 1.7-1.7 3.4-3.4 5-5.1-1.7-1.7-3.3-3.4-5-5.1 1-1 2-1.9 2.9-2.9 2.6 2.8 5.6 5.3 8.3 8-2.6 2.7-5.6 5.2-8.3 8z'/></svg>");
border-radius: 50%;
cursor: pointer;
position: absolute;
top: 50%;
margin-top: -16px;
opacity: .5;
transition: opacity .25s ease;
}
[data-slider] .arrows .prev:hover,
[data-slider] .arrows .next:hover {
opacity: 1;
}
[data-slider] .arrows .prev {
transform: rotate(180deg);
left: 16px;
}
[data-slider] .arrows .next {
right: 16px;
}
[data-slider] .pager {
position: absolute;
width: 100%;
text-align: center;
bottom: 12px;
}
[data-slider] .pager .page {
display: inline-block;
position: relative;
font-size: 0;
width: 8px;
height: 8px;
border-radius: 50%;
background-color: rgb(255,255,255);
margin: 4px 8px;
cursor: pointer;
opacity: .5;
}
[data-slider] .pager .page:hover {
opacity: 1;
}
[data-slider] .pager .page.active {
opacity: 1;
}
[data-slider] .pager .page.active:before {
content: '';
width: 14px;
height: 14px;
position: absolute;
border-radius: 50%;
border: 1px rgb(255,255,255) solid;
top: -4px;
left: -4px;
}
/**
Animations
*/
@keyframes next {
0% {left: 100%}
100% {left: 0}
}
@keyframes prev {
0% {right: 100%}
100% {right: 0}
}