Изменить маржу, если объект виден jquery

0

Я хочу, чтобы изменить top свойство объекта .content если объект .nav-wrapper обладает свойством display установлен в block.

Это мой фактический (не работает) код:

$(document).ready(function(){
     $("#menu").click(function(){
          $(".nav-wrapper").slideToggle("slow");

          if($(".nav-wrapper").css("display") == "block"){
               $(".content").css("top","340px");
          }
          else{
               $(".content").css("top","105px");
          }
     });
});

Может кто-нибудь помочь мне разобраться, как это сделать?

  • 1
    Код выглядит хорошо. Но вам нужно установить position:relative для родителя и position:absolute для content
Теги:

2 ответа

2
Лучший ответ

Вам нужно проверить состояние после завершения анимации.

Кроме того, проверьте, видно ли это вместо display свойств CSS

$(document).ready(function(){
    $("#menu").click(function(){
        $(".nav-wrapper").slideToggle("slow",function(){

            if($(".nav-wrapper").is(':visible')){
                $(".content").css("top","340px");
            }
            else{
                $(".content").css("top","105px");
            }
        });
    });
});
  • 0
    Большое спасибо, это работает отлично.
1

Следующий код сделает ваш код очень процедурным, но, с другой стороны, static позиционирование по умолчанию не имеет свойства TOP. поэтому вы должны проверить, имеет ли он какое-либо позиционирование, а не по default.

Пытаться,

      if($(".nav-wrapper").is(":visible"){
           $(".content").css("top","340px");
      }
      else{
           $(".content").css("top","105px");
      }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню