В моем изображении карусель, главное, что изменяется, является значением margin-left
. Из знания этого значения я хотел попытаться интерпретировать номер слайда (например, «Изображение 3 из 4»). я получил число всех горок:Использовать функцию при изменении поля объекта (цикл)
var all_slides_width = $('#gallery_wrapper').outerWidth();
var slide_width = $('.image_content').outerWidth();
var slide_quantity = all_slides_width/slide_width;
Тогда я хотел бы получить номер текущего видимого изображения с:
var margin_left = parseInt($('#gallery_wrapper').css('margin-left'));
var slide_count = parseInt(-margin_left + slide_width)/slide_width;
и отображение его:
<span class="slide_number"></span>
<script>
$('.slide_number').text('Image ' + slide_count + " of " + slide_quantity);
</script>
Проблема в том, что margin-left
изменяется с каждым новым слайдом. Поэтому мне нужен цикл, который меняет slide_count
при каждом изменении margin-left
. Как я могу это достичь? A setTimeout
каждой секунды был явно неэффективен. Вот сценарий моего текущего состояния: http://jsfiddle.net/cqgnvsce/
Проблема, которая возникла сейчас, заключается в том, что все сдвинуто - изображение 2 теперь является изображением 1 и т. Д. И я действительно хотел бы увидеть «Изображение 1 из 1» при загрузке первого слайда? У вас есть идея, как это можно реализовать? – Retador
Но установка slide_number() в слайд() по-прежнему очень хорошая идея! :) – Retador
Бьюсь об заклад, вы можете получить это самостоятельно. –