#javascript #jquery #css #html
#javascript #jquery #css #HTML
Вопрос:
http://jsfiddle.net/yxhzU/1042/
Я пытаюсь изменить этот пример так, чтобы в верхней карусели вы могли видеть 10% слайдов с обеих сторон.
Любая помощь, направляющая меня в правильном направлении, была бы отличной, спасибо!
Viewable area would look something like this:
______ _________________________ _______
______| |_________________________| |_______
prev^ ^current^ ^next
Ответ №1:
http://jsfiddle.net/yxhzU/1069/
Я изменил код плагина, который вы использовали. Я не тестировал его полностью, но это даст вам хорошее представление о том, что вам нужно делать.
Я внес следующие изменения:
Добавлены 2 дополнительные настройки
-
itemwidth — это число от 1-100, которое символизирует процент от ширины карусели, занимаемой одним элементом.
-
startingoffset — Аналогично, количество начального пространства слева остается открытым, также в процентах (0-100)
Наконец, я изменил все вычисления, в которых элементы обернуты и анимированы, чтобы использовать новые «вычисленные» ширины, которые включают вышеупомянутое масштабирование.
Проблема, с которой вы столкнулись, заключается в том, что многие плагины jquery и пользовательский интерфейс jquery оборачивают ваши элементы дополнительными «divs» и другими объектами DOM. Итак, пока вы использовали стили для изменения ширины ваших страниц в карусели, они фактически находились внутри других объектов. Я не думаю, что вы могли бы заставить это работать только с css в любом случае, потому что анимационные части кода были основаны на ширине, которая была измерена внутри.
Редактировать: К вашему сведению, я просматривал его только в Chrome.
Комментарии:
1. Хотел бы я дать несколько голосов «за» и правильных ответов. Большое спасибо за всю работу, которую вы проделали, чтобы помочь мне объяснить это.
2. Нет проблем, мне нравится jquery, и мне не часто приходится работать с ним на работе. С этим было интересно повозиться.
3. Еще одна вещь, которую я хотел бы выяснить, — это включение некоторых пересчетов при изменении размера окна. Что-то вроде повторного запуска вычислений на
$(window).resize(function(){});
Я рад приступить к этому, просто подумал, что хотел бы попросить у вас совета, как лучше всего это сделать. Спасибо.4. Не должно быть слишком сложно. Вам нужно будет сделать несколько вещей. 1. подключитесь и обработчик события к событию изменения размера в окне. 2. Заставьте обработчик повторно инициализировать размеры всех контейнеров в карусели и, наконец, 3. при изменении размера учитывайте текущую позицию, чтобы учесть изменение размера. Вам нужно быть осторожным с продолжительностью анимации, если вы используете это. Я подозреваю, что у вас может возникнуть какое-то странное поведение. Вероятно, лучше всего пропустить анимацию в событии изменения размера.