Я пытаюсь создать сайт прокрутки параллакса с помощью Scrollorama Но я хочу использовать нестандартную анимацию. Эта анимация должна идти сверху вниз, а затем останавливается в середине страницы и возвращается (от середины к вершине). Автор Scrollorama сказал, что этот тип анимации не поддерживается scrollorama, ни его новый плагин SuperScrollorama. Возможно, кто-то может предложить мне еще один плагин с этой функцией.Параллакс Прокрутка в обоих направлениях
ответ
Я никогда не видел Scrollorama раньше, и это заинтриговало меня, поэтому I built something to do what you're asking. Это не плагин; Я хотел, чтобы прокручиваемый код был простым и не загроможден кодом кода. Я думаю, что превращение его в плагин было бы довольно простым, поэтому я оставлю это вам (если вам не нужна какая-то помощь).
Объяснение Кодекса
JQuery имеет scrollTop()
функцию, чтобы определить, как далеко от вершины прокручивается контейнер. Используя высоту элемента, который находится внутри области прокрутки и высоту контейнера, можно определить, какой процент контейнер прокручивается:
scrollAmount/(totalSize - visibleSize)
(мы должны вычесть от высоты контейнера visibleSize
в порядке чтобы получить правильные результаты. Так как scrollTop()
возвращает количество пикселей от верхней части элемента, которые скрыты, прокрутка всего пути до дна даст нам totalSize - visibleSize
, а не только totalSize
)
Мы можем использовать этот процент, чтобы определить, когда двигаться вверх, вниз или оставаться в том же положении. Функция repositionBanner()
принимает процент прокрутки и решает, что делать с анимированным элементом. В моем коде я решил, что элемент перемещается в позицию от 0 до 30%, удерживает свою позицию от 30-70% и возвращается в исходное положение с 70-100%.
(Весь мой код предполагает, что вы имеете дело с вертикальной прокруткой. Одни и те же понятия могут быть применены к горизонтальной прокрутке с помощью left
и width
вместо top
и height
)
Это даже не близко к тому, чтобы быть столь же изящным, как ответ RustyTheBoyRobot, но вы можете добиться этого, обернув элемент в другой прозрачный элемент контейнера. Затем вы можете анимировать контейнер и исходный элемент.
Пример:
//animate in
scrollorama.animate('#elementToAnimateContainer',{
delay: 0,
duration: 100,
property:'left',
start:-3000,
end: 0,
pin: true
});
//animate out
scrollorama.animate('#elementToAnimate',{
delay: 500,
duration: 100,
property:'left',
start:0,
end: 3000,
pin: true
});
Единственная проблема в том, что контейнер будет по-прежнему на экране, но если установлен прозрачный вы не увидите его. Вы всегда могли бы $('#elementToAnimateContainer').remove()
позже или установить pointer-events:none;
и т. Д.
Как я уже сказал, это некрасиво, но он будет делать то, что вы просили.
Возможно, вы можете просто отменить это; выведите ребенка из родительского * сначала *, затем родительский элемент отодвинется на вторую часть анимации. Это позволит сохранить неиспользуемые контейнеры с экрана. – RustyTheBoyRobot
- 1. Прокрутка ListView в обоих направлениях
- 2. RecyclerView - GridLayoutManager - прокрутка в обоих направлениях
- 3. SwipeRefreshLayout в обоих направлениях?
- 4. Бесконечная прокрутка в обоих направлениях без браузера scrollbar
- 5. Прокрутка по горизонтали и по вертикали в обоих направлениях
- 6. Javascript Прокрутка Параллакс Позиционирование
- 7. http потоковое в обоих направлениях
- 8. Два значения в обоих направлениях:
- 9. Выполнение Matrix.mapPoints() в обоих направлениях
- 10. DENSE RANK в обоих направлениях
- 11. box-orient в обоих направлениях?
- 12. Расширение ширины в обоих направлениях
- 13. Расширение диапазона в обоих направлениях
- 14. Параллакс Прокрутка различной формы
- 15. jQuery Параллакс/Прокрутка События Производительность
- 16. страница прокрутки, как параллакс прокрутка
- 17. Как расширить ширину элемента в обоих направлениях?
- 18. «Лучший» способ, когда в обоих направлениях проверяется
- 19. android ViewPager проведите пальцем в обоих направлениях
- 20. Непрозрачность перехода не работает в обоих направлениях
- 21. Fluent NHibernate отображения, сохраняющие в обоих направлениях
- 22. Как удлинить сегмент линии в обоих направлениях
- 23. Как перечислить список в обоих направлениях?
- 24. Recycler Просмотр прокрутки в обоих направлениях
- 25. Обновление вороха в обоих направлениях (Прима алгоритм)
- 26. RSync: Как синхронизировать в обоих направлениях?
- 27. Синхронизация с Календарем Google в обоих направлениях
- 28. Переход в обоих направлениях между текстовыми элементами
- 29. iOS UDP связь в обоих направлениях
- 30. Необходимо расширить uitableviewcell в обоих направлениях
Вы пытались реализовать его в обычном jQuery? Функции анимации jQuery довольно просты. Вы пытаетесь выполнить пользовательскую анимацию; зачем пытаться и сжимать свои требования в стороннем плагине, если код относительно прост (на первый взгляд ваша анимация звучит довольно просто)? – RustyTheBoyRobot
@RustyTheBoyRobot Мне нужны некоторые другие функции из этого плагина (например, расти, масштабироваться и летать). У меня около 8 разделов с разными анимациями. – markilfin
Итак, когда вы прокручиваете страницу вниз, вы хотите, чтобы объект летал сверху, поселился в середине страницы, а затем начал возвращаться туда, откуда он появился, когда пользователь продолжает прокручивать. Это верно? – RustyTheBoyRobot