Здравствуйте.
Использую модуль Webform. При работе с формами можно установить условия, которые реагируют на содержимое других полей и показывают эти поля или не показывают, в зависимости от условия. Если условие выполнено не при загрузке страницы, а в процессе заполнения формы пользователем, то поле для которого было назначено условие появляется (меняется с display:none на display:block) прямо в процессе заполнения. Такое резкое появление иногда пугает и путает пользователей.
Подскажите, пожалуйста, как улучшить этот процесс, а именно мне нужно чтобы такие поля при выполнении условия в процессе заполнения появлялись плавно (slideToggle или fadeIn), чтобы пользователь успевал отследить, что произошло вообще, а то иногда это затруднительно.
Просмотрел стандартный js файл модуля webform - webform.js. Но там ничего нет на тему условий. Видно это где то в другом месте прописывается. Подскажите, пожалуйста, где именно и как лучше выполнить задачу.
Заранее благодарен любой помощи.
Комментарии
сам же ответил
напиши js типа
$(.block-select).click(){
$(.block-hidden).fadeIn( 500 );
}
А как именно применить JS? Ведь здесь нет события click или change. Я просто заполняю какое то поле и если в зависимом поле выполняется условие, то оно появляется. Это появление и нужно заменить на плавное. А подключать скрипт К КАЖДОМУ полю, разбирая его на наличие выполнения условия скриптом - не вариант, так как полей с условием могут быть десятки и у каждого разные условия.
Мне просто нужно узнать где лежит скрипт, который отвечает за стандартную смену с display:none на display:block.
а css?
-webkit-transition: all 0.3s ease-out;
-moz-transition: all 0.3s ease-out;
-o-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
Та же самая проблема.
Анимация то должна происходить при выполнении условия, а не просто при загрузке страницы.
Транзишен страбатывает при появлении элемента или изменении его. Если поле заранее не подгружается, а появляется по событию, то должно сработать.
Но с учетом вашей проблемы нужен уж очень хороший селектор для этих полей, что бы не прописывать каждое в отдельности.
В файле sites/all/modules/webform/js/webform.js добавить длительность анимации в функции .show(); (у меня строка 222) и .hide() (строка 227). Например так: show(400); .hide(400);
Решение так себе, так как после обновления модуля все вернется к скачкообразности и нужно снова править файл... но как сделать хук - ума не приложу...