2013-05-16 4 views
0

Ищете небольшую помощь в том, как заставить текст затухать в меню аккордеона. Более конкретно, при нажатии на элемент меню, я хочу, чтобы текст, который отображается под ним, исчезает и исчезает, когда это меню закрыто. Я новичок в JQuery, и хотя я понимаю основную концепцию, я не могу заставить ее работать с текущим кодом.JQuery fadeIn текст в меню аккордеона

Пример: http://codepen.io/Sektion66/pen/ouclt

Любая помощь будет принята с благодарностью! Благодарю.

+0

Вместо того, чтобы напрямую ссылаться на ваш пример и надеяться, что кто-то определит ваш код для вас, вы получите лучший ответ, если сможете разместить область кода, с которой хотите получить помощь. –

+0

Ну, я нашел решение и попытался ответить на собственный вопрос, но он, похоже, не опубликовал. Я найду время, чтобы опубликовать его позже позже. Спасибо, парни. – Sektion66

ответ

0

Мне удалось исправить мою оригинальную проблему с помощью комбинации CSS и JQuery.

Проблема была в этом ... Мне пришлось заставить видимость при анимации аккордеона, поскольку графические элементы висят вне области содержимого. При этом основные текстовые элементы также будут отображаться вне этой области во время анимации. Получается небрежный вид.

Исправление ... Используя CSS, я сначала устанавливаю основную непрозрачность основной текстовой области на 0, а затем, когда нажимается элемент меню, он добавляет класс CSS, который будет исчезать в тексте, и при нажатии исчезать.

Так это самая основная форма:

CSS

.initialState { 
    opacity: 0; 
    transition: opacity 0.15s ease-in-out; 
} 

.fadeIn { 
    opacity: 1; 
    transition: opacity 1s ease-in-out; 
} 

JS

.slideDown().addClass("fadeIn"); 
.slideUp().removeClass("fadeIn"); 

Пример: http://codepen.io/Sektion66/pen/ouclt

Tha nks для помощи всем. Надеемся, что это меню Аккордеона пригодится для других, так что иди!

0

Заменить $allCells.slide(Up|Down) на $allCells.fade(In|Out). Теперь у вас есть другие проблемы, потому что вы используете большие селектора. Старайтесь избегать этого.

0

Вам необходимо зацепить activate(event, ui)event в управлении.

Создайте обработчик, как пример кода ниже, и посмотрите, можете ли вы просто затушить всю панель в начале. Это может дать вам странные результаты, поскольку я не проверял это, просто предлагая, с чего начать.

$(".selector").accordion({ 
    activate: function(event, ui) { ui.newPanel.fadeIn(); } 
}); 

Если портит с макета или рендеринга, то вам необходимо получить ссылку на текстовые элементы внутри newPanel объекта и исчезать их все явно.

+0

Является ли он даже встроенным адаптером? – Roger

Смежные вопросы