2016-02-03 3 views
0

У меня есть этот сайт, который я делаю, и у меня есть скрытое меню, которое до сих пор работает правильно, но я хочу, чтобы, когда видно, есть возможность щелкнуть по телу, чтобы сделать это скрывать.Body Нажмите, чтобы скрыть элемент

До сих пор у меня этот код, но он не работает, поскольку я кодирую коде, он дает мне ошибку «Попытка назначить свойство readonly», плюс, делает всю страницу исчезающей.

Вот мой код для этого сегмента, я использую также на этом сайте parallax.js и fullPage.js

//function hideMenu { 
    //var $menu_visivel = $('.menu2').is(":visible"); 

    //if ($menu_visivel) { 

     //$('body').click(function() { 

     //}); 

    //} else { 

    //}; 
//} 

Вот полный Pen и debug страница. Большое спасибо заранее.

+0

Вы, перо, ничего не показываете. Дважды проверьте пожалуйста. Тем временем вы можете сделать что-то вроде этого: $ («элемент, который нужно скрывать»). ParentUntil («body»). Click (function() {// скрываем ваш элемент здесь}); –

+0

Я дважды проверил ручные работы – Miguel

+0

это ошибка: «ERR_BLOCKED_BY_CLIENT» Я думаю, что у вас есть ручка в приватном режиме, так что только вы можете ее увидеть. –

ответ

1

Ознакомьтесь с рабочим примером в CODEPEN.

Чтобы скрыть элемент, вы можете добавить событие click для document. В то же время, вам нужно добавить stopPropagation событие к элементу, а также:

$(document).click(function(event) { 
    //check out for clicking on any element but .menu and .menuButton 
    if(!$(event.target).closest('.menu, .menuButton').length && !$(event.target).is('.menu, .menuButton')) { 
     // check if the .menu is already shown 
     if($('.menu').css("left") == "0px") { 
      $(".menu").animate({ 
       left: "-200px" 
      },200); 
     } 
    }  
}); 

показать на .menuButton и спрятаться во время загрузки:

$(".menu").animate({ 
    left: "-200px" 
},200); 

$(".menuButton").click(function() { 
    // you can easily enhance it for hiding as well 
    $(".menu").animate({ 
    left: "0" 
    },200); 
}); 

Этот пример ясно показывает, что parallax плагин возится с вашим кодом.

Кстати, у вас есть дополнительный $(document).ready() внутри самого дальнего. Вам нужно вытащить его. Кроме того, трюк в этот момент работает только тогда, когда вы щелкните правой кнопкой мыши один раз на своей странице. Только левый клик не работает. По моему наблюдению, и этот полезный пост HERE, это может быть из-за плагина, потому что вертикальная полоса прокрутки на вашем теге <p> не отображается, если это необходимо, если вы не щелкните правой кнопкой мыши на странице.

+0

вы можете мне помочь? Я хочу удалить текущий файл parallax.js, потому что это то, что испортил весь мой код, только я не могу найти замену ему, который выполняет ту же работу D: – Miguel

+0

Вы пытаетесь иметь полный макет страницы? если это так, вам лучше с этим плагином наверняка: http://alvarotrigo.com/fullPage/#secondPage –

+0

тот, который я использую ahah – Miguel

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