Помогите, пожалуйста, пытался сделать слайдер на HTML + CSS + JS, в итоге не работает.
var slideIndex = 1;
showSlides(slideIndex);
function plusSlides(n) {
showSlides(slideIndex += n);
}
function currentSlide(n) {
showSlides(slideIndex = n);
}
function showSlides(n) {
var i;
var slides = document.getElementsByClassName("mySlides");
var dots = document.getElementsByClassName("dot");
if(n > slides.length){
slideIndex = 1
}
if(n < 1){
slideIndex=slides.length
}
for(i=0; i < slides.length; i++){
slides[i].style.display = "none";
}
for(i=0; i < dots.length; i++){
dots[i].className = dots[i].className.replace("active","");
}
slides[slideIndex-1].style.display = "block";
dots[slideIndex-1].className+= "active";
}
.slideshow-container{
max-width: 1000px;
position: relative;
margin: auto;
}
.prev, .next{
cursor: pointer;
position: absolute;
top: 50%;
width: auto;
margin-top: -22px;
padding: 16px;
color: white;
font-weight: bold;
font-size: 18px;
transition: 0.6s ease;
border-radius: 0 3px 3px 0;
}
.next{
right: 0;
border-radius: 3px 0 0 3px;
}
.prev:hover, next:hover{
background-color: rgba(0,0,0,0.8);
}
.dot{
cursor: pointer;
height: 13px;
width: 13px;
margin: 0 2px;
background-color: #bbb;
border-radius: 50%;
display: inline-block;
transition: background-color 0.6s ease
}
.active, .dot:hover{
background-color: #717171;
}
.fade{
-webkit-animation-name:fade;
-webkit-animation-duration:1.5s;
animation-name:fade;
animation-duration:1.5s;
}
@-webkit-keyframes fage{
from{opacity: 4}
to{opacity: 1}
}
@keyframes fage{
from{opacity: 4}
to{opacity: 1}
}
<div class="slideshow-container">
<div class="mySlides fade">
<div class="numbertext">1/5</div>
<a href="#one!" class="carousel-item"><img src="img/one.png" style="width: 100%"></a>
</div>
<div class="mySlides fade">
<div class="numbertext">2/5</div>
<a href="#two!" class="carousel-item"><img src="img/two.png" style="width: 100%"></a>
</div>
<div class="mySlides fade">
<div class="numbertext">3/5</div>
<a href="#three!" class="carousel-item"><img src="img/three.png" style="width: 100%"></a>
</div>
<div class="mySlides fade">
<div class="numbertext">4/5</div>
<a href="#four!" class="carousel-item"><img src="img/four.png" style="width: 100%"></a>
</div>
<div class="mySlides fade">
<div class="numbertext">5/5</div>
<a href="#five!" class="carousel-item"><img src="img/five.png" style="width: 100%"></a>
</div>
<a class="prev" onclick="plusSlides(-1)">❮</a>
<a class="next" onclick="plusSlides(1)">❯</a>
</div>
<br>
<div style="text-align: center;">
<span class="dot" onclick="currentSlide(1)"></span>
<span class="dot" onclick="currentSlide(2)"></span>
<span class="dot" onclick="currentSlide(3)"></span>
<span class="dot" onclick="currentSlide(4)"></span>
<span class="dot" onclick="currentSlide(5)"></span>
</div>
Слайдер вообще можно сделать без единой строчки скрипта, пример:
*,*:after,*:before {
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding: 0;
margin: 0;
outline: 0;
}
/*стили выше добавлены только для этого примера, в реальном проекте не использовать*/
html,body {
width: 100%;
}
.wrap-slider {
position: relative;
height: 400px;
width: 100%;
min-width: 767px;
background: #2C3E50;
border: 5px solid;
overflow: hidden;
}
.wrap-slider>.first-slide,
.wrap-slider>.second-slide,
.wrap-slider>.third-slide {
position: absolute;
display: inline-block;
height: 100%;
width: 100%;
z-index: 1;
}
.wrap-slider>.first-slide {
left: 0;
-webkit-transform: translatex(-100%);
-ms-transform: translatex(-100%);
transform: translatex(-100%);
-webkit-transition: 1s;
-o-transition: 1s;
transition: 1s;
-webkit-animation: scrollFirstSlider 20s linear infinite;
animation: scrollFirstSlider 20s linear infinite;
}
.wrap-slider>.second-slide {
left: 0;
-webkit-transform: translatex(0);
-ms-transform: translatex(0);
transform: translatex(0);
-webkit-transition: 1s;
-o-transition: 1s;
transition: 1s;
-webkit-animation: scrollSecondSlider 20s linear infinite;
animation: scrollSecondSlider 20s linear infinite;
}
.wrap-slider>.third-slide {
left: 0;
-webkit-transform: translatex(100%);
-ms-transform: translatex(100%);
transform: translatex(100%);
-webkit-transition: 1s;
-o-transition: 1s;
transition: 1s;
-webkit-animation: scrollThirdSlider 20s linear infinite;
animation: scrollThirdSlider 20s linear infinite;
}
.wrap-slider .wrap-in {
width: 400px;
text-align: center;
margin: 100px auto;
}
.wrap-slider .wrap-in>img {
-webkit-border-radius: 50%;
border-radius: 50%;
}
.wrap-slider>input[type="radio"] {
position: absolute;
clip: rect(0, 0, 0, 0);
}
.wrap-slider>label {
position: absolute;
z-index: 999;
height: 10px;
width: 10px;
-webkit-border-radius: 50%;
border-radius: 50%;
background: #fff;
}
.wrap-slider>label:hover {
cursor: pointer;
}
.wrap-slider>label[for="secondItem"] {
top: 90%;
left: 50%;
-webkit-transform: translate(-50%,-90%);
-ms-transform: translate(-50%,-90%);
transform: translate(-50%,-90%);
-webkit-animation: lightLabelTwo 20s linear infinite;
animation: lightLabelTwo 20s linear infinite;
}
.wrap-slider>label[for="firstItem"] {
top: 90%;
left: 47%;
-webkit-transform: translate(-47%,-90%);
-ms-transform: translate(-47%,-90%);
transform: translate(-47%,-90%);
-webkit-animation: lightLabelOne 20s linear infinite;
animation: lightLabelOne 20s linear infinite;
}
.wrap-slider>label[for="thirdItem"] {
top: 90%;
left: 53%;
-webkit-transform: translate(-53%,-90%);
-ms-transform: translate(-53%,-90%);
transform: translate(-53%,-90%);
-webkit-animation: lightLabelThree 20s linear infinite;
animation: lightLabelThree 20s linear infinite;
}
#firstItem:checked~label[for="firstItem"],
#secondItem:checked~label[for="secondItem"],
#thirdItem:checked~label[for="thirdItem"] {
background: #000;
-webkit-transition: 1s;
-o-transition: 1s;
transition: 1s;
}
input[type='radio']:checked ~ .first-slide,
input[type='radio']:checked ~ .second-slide,
input[type='radio']:checked ~ .third-slide {
-webkit-animation: scrollFirstSlider paused,scrollSecondSlider paused,scrollThirdSlider paused;
animation: scrollFirstSlider paused,scrollSecondSlider paused,scrollThirdSlider paused;
}
input[type='radio']:checked~label[for="firstItem"],
input[type='radio']:checked~label[for="secondItem"],
input[type='radio']:checked~label[for="thirdItem"]{
-webkit-animation: lightLabelOne paused,lightLabelTwo paused,lightLabelThree paused;
animation: lightLabelOne paused,lightLabelTwo paused,lightLabelThree paused;
}
#firstItem:checked ~ .first-slide,
#secondItem:checked~.second-slide,
#thirdItem:checked~.third-slide {
-webkit-transform: translatex(0);
-ms-transform: translatex(0);
transform: translatex(0);
-webkit-transition: 1s;
-o-transition: 1s;
transition: 1s;
}
#firstItem:checked ~ .second-slide,
#secondItem:checked ~ .third-slide {
-webkit-transform: translatex(100%);
-ms-transform: translatex(100%);
transform: translatex(100%);
-webkit-transition: 1s;
-o-transition: 1s;
transition: 1s;
}
#firstItem:checked ~ .third-slide {
-webkit-transform: translatex(200%);
-ms-transform: translatex(200%);
transform: translatex(200%);
-webkit-transition: 1s;
-o-transition: 1s;
transition: 1s;
}
#secondItem:checked ~ .first-slide,
#thirdItem:checked ~ .second-slide {
-webkit-transform: translatex(-100%);
-ms-transform: translatex(-100%);
transform: translatex(-100%);
-webkit-transition: 1s;
-o-transition: 1s;
transition: 1s;
}
#thirdItem:checked ~ .first-slide {
-webkit-transform: translatex(-200%);
-ms-transform: translatex(-200%);
transform: translatex(-200%);
-webkit-transition: 1s;
-o-transition: 1s;
transition: 1s;
}
@-webkit-keyframes scrollFirstSlider {
0%,50%,100% {
-webkit-transform: translatex(-100%);
transform: translatex(-100%);
}
25% {
-webkit-transform: translatex(-200%);
transform: translatex(-200%);
}
75% {
-webkit-transform: translatex(0);
transform: translatex(0);
}
}
@keyframes scrollFirstSlider {
0%,50%,100% {
-webkit-transform: translatex(-100%);
transform: translatex(-100%);
}
25% {
-webkit-transform: translatex(-200%);
transform: translatex(-200%);
}
75% {
-webkit-transform: translatex(0);
transform: translatex(0);
}
}
@-webkit-keyframes scrollSecondSlider {
0%,50%,100% {
-webkit-transform: translatex(0);
transform: translatex(0);
}
25% {
-webkit-transform: translatex(-100%);
transform: translatex(-100%);
}
75% {
-webkit-transform: translatex(100%);
transform: translatex(100%);
}
}
@keyframes scrollSecondSlider {
0%,50%,100% {
-webkit-transform: translatex(0);
transform: translatex(0);
}
25% {
-webkit-transform: translatex(-100%);
transform: translatex(-100%);
}
75% {
-webkit-transform: translatex(100%);
transform: translatex(100%);
}
}
@-webkit-keyframes scrollThirdSlider {
0%,50%,100% {
-webkit-transform: translatex(100%);
transform: translatex(100%);
}
25% {
-webkit-transform: translatex(0);
transform: translatex(0);
}
75% {
-webkit-transform: translatex(200%);
transform: translatex(200%);
}
}
@keyframes scrollThirdSlider {
0%,50%,100% {
-webkit-transform: translatex(100%);
transform: translatex(100%);
}
25% {
-webkit-transform: translatex(0);
transform: translatex(0);
}
75% {
-webkit-transform: translatex(200%);
transform: translatex(200%);
}
}
@-webkit-keyframes lightLabelOne {
0%,25%,50%,100% {
background: #fff;
}
75% {
background: #000;
}
}
@keyframes lightLabelOne {
0%,25%,50%,100% {
background: #fff;
}
75% {
background: #000;
}
}
@-webkit-keyframes lightLabelTwo {
0%,50%,100% {
background: #000;
}
25%,75% {
background: #fff;
}
}
@keyframes lightLabelTwo {
0%,50%,100% {
background: #000;
}
25%,75% {
background: #fff;
}
}
@-webkit-keyframes lightLabelThree {
0%,50%,75%,100% {
background: #fff;
}
25% {
background: #000;
}
}
@keyframes lightLabelThree {
0%,50%,75%,100% {
background: #fff;
}
25% {
background: #000;
}
}
<div class="wrap-slider">
<input type="radio" name="slide-group" id="firstItem"/>
<input type="radio" name="slide-group" id="secondItem"/>
<input type="radio" name="slide-group" id="thirdItem"/>
<label for="firstItem"> </label>
<label for="secondItem"> </label>
<label for="thirdItem"></label>
<div class="first-slide">
<div class="wrap-in"><img src="https://dummyimage.com/100x100/E67E22/fff.png" alt=""/>
<div class="text">Loremのイプサムの悲しみは、リベートをconsecteturをAMET座ります。、そうでない場合は、どこから来るので、不足して自分自身をScaurus?そこに義人が、それは、非難の一部を拒否し、生まれたように、それゆえ、人生のいずれかの一部または全部を、誰もがそれを支払う必要はありませんし、重視しているとき。スピーディーであります</div>
</div>
</div>
<div class="second-slide">
<div class="wrap-in"><img src="https://dummyimage.com/100x100/79bf5e/fff.png" alt=""/>
<div class="text">Lorem ipsum dolor sit amet consectetur, adipisicing elit. Ipsum minus quia alias sint? Expedita iusto, illo, quasi reiciendis natus accusantium, magni omnis itaque aliquam neque nemo pariatur ipsam ullam vitae.</div>
</div>
</div>
<div class="third-slide">
<div class="wrap-in"><img src="https://dummyimage.com/100x100/5e8cbd/fff.png" alt=""/>
<div class="text">أبجد هوز دولور الجلوس امات consectetur، والحسومات. Scaurus نفسه مع عدم وجود ل، وإلا، وأنها تأتي من؟ هو سريع عند الرجل الصالح، هناك، إلى حيث كانت، ولدت، ورفض بعض شجب، تولي أهمية كبيرة، لذلك، من بعض أو كل أي من الحياة، لا أحد لدفعها.</div>
</div>
</div>
</div>
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости