Антон В.
1807 повідомлень
#12 років тому

Мастерю тут полностью резиновую карусель, грамотно подстраивающуюся под ширину окна (готовых скриптов, которые стопроцентно хорошо работают, не подглючивая и не обрезая слайды, или нету, или я не нашел), на основании jCarousel. И вроде бы добился всего, что нужно, но блин, как всегда есть ложка дёгтя. Если докрутить карусель до последнего элемента, то стрелка "вправо" не пропадает, и можно ткнуть еще раз, и подвинуть всю карусель на пиксель. Чтобы крутануть обратно, надо опять подкрутить на пиксель, и потом крутить в обратную сторону.
Не могу понять, что это за эффект, и почему не пропадает стрелка. Попробовал убрать все свои навороты, и просто вызвать карусель - то же самое, в конце надо подкручивать на пиксель.

Если есть любители поковыряться и помочь, подскажите что-то, а то прямо чето не знаю..

ПыСы. Если поиграться шириной окна браузера, то можно найти такую, что подкручивать не надо, стрелка пропадает как только выезжает последний элемент. Наталкивает на мысль о какой-то байде с округлением, но все равно чето на ум ничего не идет.
Никита Липинский
403 повідомлення
#12 років тому
1. Какое значение у count_visible?
count_visible = Math.floor(carousel_wrap_width/carousel_li_width);


2. Почему параметр visible = 7, а отображаются 10?

3. Можно быстро протестировать без заморочек с арифметикой
Перед выводом карусели финальное количество объектов уменьшить на 1.

А вообще там же bxslider подключен, он отлично подойдет.

P.S. Уменьшите ширину экрана до 320 - пиксель пропадает, то есть JS считает на 1 объект больше при полном экране, ищите проблему в делении или округлении.
Серафима Л.
10571 повідомлення
#12 років тому
nehovaysyatopol, У меня просто на весь экран, а он большой в ряд красиво стоят бутылки, ничего не шевелится Это Джумла?
Ольга З.
2356 повідомлень
#12 років тому
Цитата ("AlexsimA"):
nehovaysyatopol, У меня просто на весь экран, а он большой в ряд красиво стоят бутылки, ничего не шевелится Это Джумла?

У вас наверное все бутылки влезли в монитор т.к. у меня на большем мониторе больше и бутылок, а на меньшем естественно меньше и при нажатии бутылочки подвигаются
Серафима Л.
10571 повідомлення
#12 років тому
Zi, Да конечно все и еще места полно
Ольга З.
2356 повідомлень
#12 років тому
nehovaysyatopol? непорядок, специально для AlexsimA добавить бутылок
Елена Б.
6863 повідомлення
#12 років тому
У меня все отлично. Хром, 1280
Антон В.
1807 повідомлень
#12 років тому
Цитата ("tuls"):
1. Какое значение у count_visible?
count_visible = Math.floor(carousel_wrap_width/carousel_li_width);


2. Почему параметр visible = 7, а отображаются 10?

3. Можно быстро протестировать без заморочек с арифметикой
Перед выводом карусели финальное количество объектов уменьшить на 1.

А вообще там же bxslider подключен, он отлично подойдет.

P.S. Уменьшите ширину экрана до 320 - пиксель пропадает, то есть JS считает на 1 объект больше при полном экране, ищите проблему в делении или округлении.


7 по умолчанию, если что-то не сложилось со скриптом. Если со скриптом все сложилось, то показывается ровно такое количество бутылок, чтобы влазило целиком (целочисленное деление, грубо говоря). Пересчитывается каждый раз при ресайзе.
Тестировать на количество элементов не обязательно, файрбаг четко показывает, что лишних элементов нет.
bxSlider обрезает бутылки, он не подстраивается под изменение ширины окна. Надо каждый раз пересчитывать все размеры, и показывать ровно столько бутылок, чтобы влазили целиком. Возможно в bxSlidere это тоже можно накастомизировать, но я не врубился как, jCarousel более дружественна в этом плане, поэтому работал с ней.

Цитата ("floppox"):
У меня все отлично. Хром, 1280


А вы поиграйтесь шириной окна браузера, как я писал вышел....возможно на 1280 все совпадает, чтобы округление проходило верно...
Сергей Л.
616 повідомлень
#12 років тому
А зачем "велосипедить"? Вы плохо искали, возможно просто документацию по ним не смотрели. Есть 2 хороших скрипта и для ваших задач они вполне подходят.


И в первом и во втором можно сделать адаптивное слайдшоу и адаптивную карусель, очень гибкие настройки.
Антон В.
1807 повідомлень
#12 років тому
art-apple, не подходят....например, bxSlider, внимательно потестируйте карусель, крайний правый слайд просто обрезается, если поресайзить окно. Я сам фанат bxSlider, он у меня почти в каждом проекте, но его карусель тут не подходит.
Сергей Л.
616 повідомлень
#12 років тому
nehovaysyatopol, а вы документацию изучите сначала... делал неоднократно такое.
Сергей Л.
616 повідомлень
#12 років тому
Второй скрипт точно подойдет, есть пример -
На первом я помню тоже такое делал, просто там примера такого нет, но если настроить/ковырнуть/сверстать правильно, то тоже можно сделать.
Елена Б.
6863 повідомлення
#12 років тому
Я бы вообще не так делала. Сначала верстка на чистом цсс, чтоб отлбражалось нужное количество бутылок (те что не влазят, переносятся в следующий ряд и не видны). По клику на стрелку, первый элнмент переносим в конец ряда. оассчетлв вообще никаких не нужно. Но при таком подходе полкчится только циклическая карусель.
Антон В.
1807 повідомлень
#12 років тому
floppox, ну во-первых тут прийдется обойтись без анимации, а во-вторых количество видимых элементов динамически меняется в зависимостиот ширины окна...

art-apple,

Карусель по вашей ссылке, после того как я поигрался шириной окна, обрезала слайды и слева и справа.
Вот если бы вспомнили, как можно менять количество видимых элементов в bxSilder (minSlides, maxSlides) динамически, было бы хорошо. Я просто не понял, как это сделать программно. Тогда бы было бы то же самое, что я сейчас делаю с jCarousel, но при этом bxSlider мне как плагин более приятен, и, надеюсь, не будет глючить.
Елена Б.
6863 повідомлення
#12 років тому
Анимация таки да, не получится. А вот подстраиваться под ширину будет идеально.
Сергей Л.
616 повідомлень
#12 років тому
nehovaysyatopol, так там верстка такая сайта, если бы он полностью был резиновым(сам шаблон сайта) то карусель не будет обрезаться.
Антон В.
1807 повідомлень
#12 років тому
Ну хорошо, допустим "можно сделать по-другому". Но всё же - вот в этом текущем варианте, откуда может браться лишний поворот на пиксель?
Антон В.
1807 повідомлень
#12 років тому
Разобрался, отслеживая появление последнего слайда, и скриптом скрывая в этот момент стрелку принудительно, так что нажать еще раз не получится. Тему можно закрывать.
Никита Липинский
403 повідомлення
#12 років тому
Цитата ("nehovaysyatopol"):
Разобрался, отслеживая появление последнего слайда, и скриптом скрывая в этот момент стрелку принудительно, так что нажать еще раз не получится. Тему можно закрывать.

Это называется костыль