2013-03-21 15 views
5

Ich versuche, eine JS Web App mit Tabs zu erstellen. Die Besonderheit der Schnittstelle besteht darin, dass die Registerkarten so hoch wie das Fenster sein sollten und der Inhalt gescrollt werden sollte, wenn er höher als das Fenster ist. Der Inhalt besteht aus mehreren links schwebenden Feldern, die den Bildschirm ausfüllen.Wie mache ich jQuery Tabs() 100% hoch und Inhalt scrollbar

Ich habe bereits einen Teil der Lösung funktioniert, aber ich kann nicht herausfinden, wie man die 100% Höhe und das Scrollen für den Container einstellen.

http://jsfiddle.net/KhwZS/1242/

<div class="tabs"> 
<ul> 
    <li><a href="#tab1">Tab1</a></li> 
</ul> 
<div id="tab1"> 
    <div class="container clearfix"> 
     <div class="floated"></div> 
     <div class="floated"></div> 
     <div class="floated"></div> 
    </div> 
</div> 

jQuery tabs with scrolled content

Antwort

4

http://jsfiddle.net/KhwZS/1245/

CSS:

html, body { 
    height: 100%; 
} 
.tabs { 
height: 100%; 

}

#tab1 { 
    height: 100%; 
    overflow: auto; 
} 
+0

Sie wahrscheinlich benötigen 'ul {position: fixed;}' die Navigationsleiste verschwinden zu verhindern. – gaynorvader

+0

Ein weiteres Problem: Der Inhalt des Inhalts ist auf diese Weise nicht sichtbar. Die 100% Höhe nimmt die Höhe der Seite an, berücksichtigt aber nicht die Höhe der Tab-Leiste! – allprog

1

Siehe DEMO.

Behalten Sie die UI-Registerkarten mit CSS position:fixed fest.

.ui-tabs-nav { 
    position: fixed; 
    width: 100%; 
} 

Dann jQuery, um den Inhalt einer margin-top zu geben, damit sie standardmäßig unterhalb der UI Tabs angezeigt werden würde.

$("#tab1").css("margin-top", $(".ui-tabs-nav").height()); 
+0

Danke. Diese Verwandtschaft von Werken, aber der Inhalt geht hinter die Tab-Leiste und sieht komisch aus. Darüber hinaus überlappt die Bildlaufleiste die Tab-Leiste. – allprog

2

Vielleicht haben Sie das schon gelöst, aber hier ist eine Lösung mit Position: Absolut, das funktioniert für uns. Könnte ein Ausgangspunkt für dich sein. /Staffan

.tabs{ 
position: absolute; 
top: 0px; 
left: 0px; 
bottom: 0px; 
right: 0px; 
margin: 0px; 
} 


.ui-tabs .ui-tabs-nav { 
position: absolute; 
top: 0; 
left: 0px; 
height: 18px; 
right: 0; 
} 


.ui-tabs-panel { 
position: absolute; 
top: 18px; 
left: 0; 
bottom: 0; 
right: 0; 
overflow: auto; 
} 
+1

Ich habe dieses Problem bereits gelöst, aber es ist definitiv gut, mehrere Optionen zu haben. Können Sie einen JSFiddler-Link hinzufügen? – allprog

+0

Ein Jsfiddler-Link für diese Lösung: http://jsfiddle.net/LR7Et/ –

Verwandte Themen