2016-09-29 1 views
0

hey ich habe eine offcanva Sidebar, die ziemlich gut funktioniert. Was ich ändern sollte, ist, dass die Benutzer die Seitenleiste schließen sollen, indem sie an jeder Stelle klicken. Zum Beispiel im Körper.wie man Sidebar durch Klicken innerhalb Körper

Im Moment gibt es eine Schließen-Schaltfläche in der Seitenleiste, die es auf den Standardwert zurückbringt.

function openNav() { 
    document.getElementById("left-sidebar").style.width = "250px"; 
} 

function closeNav() { 
    document.getElementById("left-sidebar").style.width = "0"; 
} 

öffnet Sidebar

<a href="#" onclick="openNav()"><i class="icon-menu"></i></a> 

schließen Sidebar

<a href="javascript:void(0)" class="closebtn" onclick="closeNav()"></a> 
+1

Mögliche Duplikat [Use jQuery ein DIV zu verstecken, wenn der Benutzer außerhalb davon klickt] (http://stackoverflow.com/questions/1403615/use-jquery-to- Verbergen-ein-div-wenn-der-Benutzer-klickt-außerhalb-von-es) –

+0

Siehe die folgende Frage für eine sehr ähnliche Abfrage. Die Antworten sollten hier helfen: http://stackoverflow.com/questions/6463486/jquery-drop-down-menu-closing-by-clicking-outside –

+0

es funktioniert nicht von mir .. – kdskii

Antwort

2

Sie könnten es tun, um diese Art und Weise

// Toogle Left Sidebar 

$('#open-pulse-sidebar').click(function() { 
    $('.pulse-sidebar').toggleClass('active') 
}) 

$(document).click(function(e) { 
    var sidebar = $(".pulse-sidebar, #open-pulse-sidebar"); 
    if (!sidebar.is(e.target) && sidebar.has(e.target).length === 0) { 
    sidebar.removeClass('active') 
    } 
}); 

html:

<a href="#" id="open-pulse-sidebar"><i class="icon-menu circle-icon"></i></a> 

und die Breite könnten Sie über CSS tun.

Fore Beispiel:

width: 19.24em; 
Verwandte Themen