fadeIn, fadeOut не работает (или я не знаю, как заставить это работать)

У меня есть div со следующим классом:

#instrucPanel {
    background-color:black;
    opacity:0;
    position: absolute;
    left: 180px;
    top: 71px;
    height: 226px
}

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

Для этого я использую следующий код JavaScript:

function ShowHideInstruc()
{
    if ($.myNameSapace.instShown)
    {
        $.myNameSpace.instShown = false;
        $('#instrucPanel').fadeOut('fast');
    }
    else
    {
        $.myNameSpace.instShown = true;
        $('#instrucPanel').fadeIn('slow');
    }
}

Но я ничего не вижу, это всегда скрыто.

Что я делаю не так?

3 ответа

Решение

Во-первых, вы должны использовать display:none; в отличие от opacity:0,

Тогда вы можете использовать .fadeToggle() метод, как это:

function ShowHideInstruc()
{
     var show = $.viacognitaspace.instShown = !$.viacognitaspace.instShown; 
     $('#instrucPanel').fadeToggle((show) ? 'fast' : 'slow');
}

Обратите внимание, что этот подход намного суше.

opacity: 0; делает вашу панель прозрачной

Использовать display: none; спрятать панель в начале, а затем просто исчезать и исчезать с помощью jQuery

ОБНОВЛЕНИЕ Вот рабочая демонстрация того, что вы хотите на JSFIDDLE

Другие вопросы по тегам