j-Layout
- Ten składnik może stworzyć rozkład dla SPA. ten składnik jest nieco trudniejszy do zrozumienia, ale jest bardzo przydatny.
j-Layoutwykorzystuje jComponent+v17.
Konfiguracja:
parent {String}może zawierać wybórparent,windowlub jQuery dla metodyclosest(default:window)margin {Number}dodaje marżę dlaheight(default:0)remember {Boolean}może zapamiętać ostatnie ustawienia rozmiaru do ponownego odtwarzania (default:true)space {Number}wewnętrzny, zawiera przestrzeń między paneli (default:1)border {Number}wewnętrzny, zawiera rozmiar graniczny (default:0)resize {String}wewnętrzny, ścieżka do metody, którą wykonuje się, gdy rozkład jest ponownie zmodyfikowanyautoresize {Boolean}umożliwia automatyczne rozmiary (default:true)
Metody:
component.refresh()rozcieńczeniecomponent.resize()wyświetla sięcomponent.reset()wykonuje ponowne ustawieniecomponent.layout(name)zmienia ustawienie (jak dwa sposoby wiążące dane)component.rebind(code_string)tworzy nową konfiguracjęcomponent.lock(type, [boolean])zamyka panele
Rodzaje paneli:
leftLewy panel, odtworzonyrightprawicowy panel, odtworzony- Panel
right2znajduje się obok lewego panelu i używa kluczarightw konfiguracji, odtwarzającej - Panel
topgórny, odświeżający (Panel jest na górze wszystkich paneli) - Panel
top2, odtwarzalny i używa kluczatopw konfiguracji (jest między panelemleftaright) bottompanel dolny, odtwarzalny (Panel jest na dole wszystkich paneli)- Panel
bottom2, odtwarzalny i używa kluczabottomw konfiguracji (jest między panelemleftaright) - Panel główny
main, nie może być odtworzony, a rozmiar jest automatycznie obliczany
Layout:
Tworzenie układu jest bardzo proste i z wieloma możliwościami. układ musi mieć własną strukturę HTML. Spójrz na przykład.
size {Number/String}może zawierać wysokość / szerokość panelu zgodnie z typem panelu. numer120definiuje piksele, a strumień100%może określić procentminsize {Number/String}to minimalny rozmiar panelu, podczas gdy panel jest odświeżony (default: wartośćsize)maxsize {Number/String}to maksymalny rozmiar panelu, podczas gdy panele są odtwarzane (default: automatycznie obliczone)resize {Boolean}umożliwia odtwarzanie panelu z wyjątkiem panelumain.show {Boolean}umożliwia widoczność (default:false)
{
top: { size: 80, resize: true, minsize: 50 }, // top panel
right: { size: 100 },
bottom: { size: 100 }, // bottom panel
left: { size: 100, resize: true }, // left panel
main: {}, // main panel
// Can contain a different template for various display types
// lg = Large display, md = Medium display, sm = Small display, xs = Extra small display
md: {
top: { show: true, size: 80 },
bottom: { show: false },
left: { show: false },
main: { show: true }
},
// Custom layouts
detail: {
// Custom display types in custom layouts
md: {
top: { show: true },
bottom: { show: true },
main: { show: true },
left: { show: false },
right: { show: true, size: 300 }
},
xs: {
top: { show: true },
bottom: { show: true },
main: { show: false },
left: { show: false },
right: { show: true, size: '100%' }
}
}
}Dobrze wiedzieć:
- __WYWIADOMOŚĆ: Ten element musi zawierać metadane rozmiaru wtyczonego w
<script type="text/plain"></script> - Każdy panel jest elementem
sectioni musi zawierać atrybutdata-type="top"z typem panelu - Określ panele, które będziesz używać
- Zamówienie wszystkich elementów
sectionnie ma znaczenia top2używa klucza konfiguracyjnegotopright2używa klucza konfiguracyjnegorightbottom2używa klucza konfiguracyjnegobottom
Użyj go z <ui-component name="layout">Gdy element nie jest jeszcze ładowany, jComponent Pobierz go po pierwszym użyciu z adresu DEF.fallback (Wydaje się Componentator Autor: Peter Širka Źródło: Componentator Zestaw składników, licencja MIT.
<style>
.ui-layout-section { font-size: 11px; }
</style>
<div style="width:500px;height:300px">
<ui-component name="layout" path="mylayout" config="parent:parent" class="invisible">
<!-- META DATA OF THE LAYOUT -->
<!-- VERY IMPORTANT -->
<script type="text/plain">
{
top: { size: 80, resize: true },
bottom: { size: 100 },
left: { size: 100, minsize: 50, resize: true },
right: { size: 100 },
main: {},
detail: {
left: { show: false },
right: { show: true, size: '100%' },
bottom: { show: false },
main: { show: false }
}
}
</script>
<!-- PANEL IN LAYOUT -->
<section data-type="top">
TOP
</section>
<!-- PANEL IN LAYOUT -->
<section data-type="main">
MAIN
</section>
<!-- PANEL IN LAYOUT -->
<section data-type="right">
RIGHT
</section>
<!-- PANEL IN LAYOUT -->
<section data-type="left">
LEFT
</section>
<!-- PANEL IN LAYOUT -->
<section data-type="bottom">
BOTTOM
</section>
</ui-component>
</div>
<br />
<div style="width:500px;height:300px">
<ui-component name="layout" config="parent:parent" class="invisible">
<script type="text/plain">
{
top: { size: 80, resize: 1 },
bottom: { size: 100 },
left: { size: 100 },
right: { size: 100 },
main: {}
}
</script>
<section data-type="top2">
TOP2
</section>
<section data-type="main">
MAIN
</section>
<section data-type="right">
RIGHT
</section>
<section data-type="left">
LEFT
</section>
<section data-type="bottom2">
BOTTOM2
</section>
</ui-component>
</div>
<script>
var mylayout = '';
setInterval(function() {
SET('mylayout', mylayout === 'detail' ? '' : 'detail');
}, 5000);
setInterval(function() {
SETTER('layout', 'lock', 'right');
}, 8000);
</script>