Проблема в том, что эффект появления удаляет стиль непрозрачности с элемента, как только он будет сделан. самое простое решение - удалить opacity: 0;
из таблицы стилей и поместить его прямо в div с помощью style="opacity: 0"
. Это немного некрасиво из-за встроенного стиля. Другим решением было бы использовать параметр: from в вызове visual_effect, например:
visual_effect(:appear, :main_counter, :duration=>3.0, :from => 0)
Таким образом, эффект сначала установит непрозрачность на 0. Однако, если загрузка страниц занимает некоторое время, возможно, что div виден до тех пор, пока не сработает событие on_load.
Мне любопытно, что я никогда не сталкивался с этим, мне немного жаль, что я не могу придумать "хорошее" решение.