Я новичок в JQuery, и почти 80% этого не является моим кодом. Я просто использую его, чтобы узнать, как создавать слайдеры, но я был бы очень признателен, если бы кто-то помог мне, сказав мне, что я могу сделать для сделайте этот слайдер автоматически включенным в момент загрузки страницы. Кроме того, в качестве дополнительного можно сделать это, когда slide_index == 16 слайд будет вращаться нормально, а не вращаться назад до первого изображения. Спасибо: PКак я могу сделать это автоматически?
HTML:
<html>
<body>
<div class="slider">
<ul>
<li>
<img src="img1.jpg" />
</li>
<li>
<img src="img2.jpg" />
</li>
<li>
<img src="img3.jpg" />
</li>
<li>
<img src="img4.jpg" />
</li>
<li>
<img src="img5.jpg" />
</li>
<li>
<img src="img6.jpg" />
</li>
<li>
<img src="img7.jpg" />
</li>
<li>
<img src="img8.jpg" />
</li>
<li>
<img src="img9.jpg" />
</li>
<li>
<img src="img10.jpg" />
</li>
<li>
<img src="img11.jpg" />
</li>
<li>
<img src="img12.jpg" />
</li>
<li>
<img src="img13.jpg" />
</li>
<li>
<img src="img14.jpg" />
</li>
<li>
<img src="img15.jpeg" />
</li>
<li>
<img src="img16.jpg" />
</li>
<li>
<img src="img17.jpg" />
</li>
</ul>
<button class="prev">Prev</button>
<button class="next">Next</button>
</div>
</div>
<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="slider.js"></script>
</body>
</html>
CSS:
.slider {
width: 60%;
overflow: hidden;
height: 607px;
position: relative;
border: 5px #000000 solid;
margin-left: 20%;
}
.slider ul {
margin: 0;
padding: 0;
list-style: none;
position: absolute;
width: 1700%;
height: 100%;
top: 0;
}
.slider li {
padding: 0;
margin: 0;
width: 33.333333%;
height: 100%;
overflow: hidden;
position: absolute;
top: 0;
bottom: 0;
}
.slider li img {
border: none;
width: 100%;
min-height: 100%;
}
.slider button {
position: absolute;
display: block;
box-sizing: border-box;
border: none;
outline: none;
top: 0;
bottom: 0;
width: 13%;
background-color: rgba(0, 0, 0, 0.3);
color: #fff;
margin: 0;
padding: 0;
text-align:center;
opacity: 0;
z-index: 2;
height: 100%;
}
.slider button.prev {
left: 0;
font-size: 30px;
}
.slider button.next {
right: 0;
font-size: 30px;
}
.slider button:hover, .slider button:active {
opacity: 1.0;
}
JQuery:
$(function() {
var ul = $(".slider ul");
var slide_count = ul.children().length;
var slide_width_pc = 100.0/slide_count;
var slide_index = 0;
ul.find("li").each(function(indx) {
var left_percent = (slide_width_pc * indx) + "%";
$(this).css({"left":left_percent});
$(this).css({width:(100/slide_count) + "%"});
});
setInterval(function() {
console.log("prev button clicked");
slide(slide_index - 1);
}
function() {
slide(slide_index + 1);
if (slide_index == 16) {
slide(slide_index == 0);
ul.animate({
"margin-left": margin_left_pc;
}, 400);
}
},500);
function slide(new_slide_index) {
if(new_slide_index < 0 || new_slide_index >= slide_count) return;
var margin_left_pc = (new_slide_index * (-100)) + "%";
ul.animate({"margin-left": margin_left_pc}, 400, function() {
slide_index = new_slide_index
});
}
});
слайдов с фиксированной шириной? – Ivan
У меня нет подсказки, как изменить этот материал. Я новичок в JQuery, не стесняйтесь комментировать какой-то лучший код, чтобы сделать автоматический слайдер изображения: P Я бы очень признателен, что не могу найти много помощи по этой теме, просто используя сайты. –
Основная идея: изменить «левую» позицию ul (index * liWidth) внутри setInterval, когда index == 16 сделать это 0 – Ivan