Последовательность действий такая:
1) Ждем когда DOM страницы построится;
2) Находим в DOM-ме элемент нашей формы;
3) Вешаем обработчик события отправки формы;
4) Внутри ф-и обработки события отменяем действие по умолчанию для этой формы, достаем значения нужных нам полей и вызываем ф-ю отправки письма.
Да сложного не чего нет, реализован он при помощи gsap, так что не чего ужасного там, нет. Тормоза могут идти из-за слайдер в одном из слоев. А так на компе с нормальным gpu все отлично работает без томозов. Но писалось это давно и я не говорил, что реализация классная просто по скрину увидел похожее расположение блоков и решил помочь.
Если я вас правильно понял вам нужен такой эффект, как тут www.ortodentica.ru/. Если да то я могу вам написать решение, ибо для это сайта писал руками плагин.
Вообще, ошибка у вас должна возникать, если у вас есть циклические зависимости. Если например хранилище One должно ждать изменения в Two, а Two должно ждать изменение в One. Собственно для этого и введен Dispatcher во Flux, он просто кидает ошибку если видит зацикленные зависимости. Вариант в принципе наверное только один создать промежуточное хранилище, которое будет разруливать изменения. А создавать много Dispatcher-это это не есть гуд, так как противоречит самой концепции flux.
Ну именно если с image делать, то вам в комментарии dpismenny пример привел, такое решение тоже может сгодиться, но оно не сработает если у вас картинка будет вертикальная. Но по хорошему лучше использовать для такого js. Посмотрите плагинов, которые делают, то что вам нужно довольно много.
Так может у них анимация побольше чем у вас растянута, у вас скорость смены сцен немного больше чем на сайте в примере, может из-за этого плавность страдает?