Антон В.
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"):
Разобрался, отслеживая появление последнего слайда, и скриптом скрывая в этот момент стрелку принудительно, так что нажать еще раз не получится. Тему можно закрывать.

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