MooTools - Fx.Slide
Fx.Slides to opcja, która pozwala wyświetlać zawartość przez przesuwanie do widoku. Jest to bardzo proste, ale poprawia wygląd interfejsu użytkownika.
Porozmawiajmy o tworzeniu i inicjowaniu Fx.Slide, jego opcjach i metodach.
Najpierw zainicjujemy klasę Fx.Slide za pomocą instancji zdefiniowanej przez użytkownika. W tym celu musimy stworzyć i wybrać element HTML. Następnie zastosujemy CSS do tych elementów. Na koniec zainicjujemy nową instancję Fx.Slide z naszą zmienną element.
Opcje Fx.Slide
Istnieją tylko dwie opcje Fx.Slide - tryb i opakowanie.
Tryb
Tryb zapewnia dwie możliwości: „pionową” lub „poziomą”. Pionowe odsłania od góry do dołu i poziome odsłania od lewej do prawej. Nie ma opcji przejścia od dołu do góry ani od prawej do lewej, ale rozumiem, że hakowanie samej klasy w celu osiągnięcia tego jest stosunkowo proste. Moim zdaniem jest to opcja, którą chciałbym zobaczyć standard i jeśli ktoś włamał się do klasy, aby zezwolić na tę opcję, napisz do nas.
Obwoluta
Domyślnie Fx.Slide otacza element slajdu otoką, nadając mu „przepełnienie”: „ukryty”. Wrapper umożliwia ustawienie innego elementu jako opakowania. Tak jak powiedziałem powyżej, nie jestem pewien, gdzie to się przydaje, i byłbym zainteresowany usłyszeniem jakichkolwiek myśli (dzięki koniu z mooforum.net za pomoc w wyjaśnieniu tego).
Metody Fx.Slide
Fx.Slide oferuje również wiele metod pokazywania i ukrywania twojego elementu.
slideIn ()
Jak sama nazwa wskazuje, ta metoda uruchomi zdarzenie początkowe i ujawni twój element.
wysuń()
Wsuwa element z powrotem do stanu ukrytego.
przełącznik()
Spowoduje to wsunięcie lub wysunięcie elementu, w zależności od jego aktualnego stanu. Bardzo przydatna metoda dodawania do zdarzeń kliknięcia.
ukryć()
Spowoduje to ukrycie elementu bez efektu ślizgania.
pokazać()
Spowoduje to wyświetlenie elementu bez efektu slajdu.
Fx.Slide Shortcuts
Klasa Fx.Slide udostępnia również przydatne skróty do dodawania efektów do elementu.
zestaw ('slajd')
Zamiast inicjować nową klasę, możesz utworzyć nową instancję, jeśli „ustawisz” slajd na elemencie.
Syntax
slideElement.set('slide');
opcje ustawień
Możesz nawet ustawić opcje za pomocą skrótu -
Syntax
slideElement.set('slide', {duration: 1250});
ślizgać się()
Gdy slajd to .set (), możesz go zainicjować metodą .slide ().
Syntax
slideElement.slide('in');
.slide zaakceptuje -
- ‘in’
- ‘out’
- ‘toggle’
- ’show’
- ‘hide’
… Każdy odpowiada powyższym metodom.
Example
Weźmy przykład wyjaśniający Fx.Slide. Spójrz na poniższy kod.
<!DOCTYPE html>
<html>
<head>
<style>
.ind {
width: 200px;
padding: 10px;
background-color: #87AEE1;
font-weight: bold;
border-bottom: 1px solid white;
}
.slide {
margin: 20px 0;
padding: 10px;
width: 200px;
background-color: #F9E79F;
}
#slide_wrap {
padding: 30px;
background-color: #D47000;
}
</style>
<script type = "text/javascript" src = "MooTools-Core-1.6.0.js"></script>
<script type = "text/javascript" src = "MooTools-More-1.6.0.js"></script>
<script type = "text/javascript">
window.addEvent('domready', function() {
var slideElement = $('slideA');
var slideVar = new Fx.Slide(slideElement, {
//Fx.Slide Options
mode: 'horizontal', //default is 'vertical'
//wrapper: this.element, //default is this.element
//Fx Options
link: 'cancel',
transition: 'elastic:out',
duration: 'long',
//Fx Events
onStart: function(){
$('start').highlight("#EBCC22");
},
onCancel: function(){
$('cancel').highlight("#EBCC22");
},
onComplete: function(){
$('complete').highlight("#EBCC22");
}
}).hide().show().hide(); //note, .hide and .show do not fire events
$('openA').addEvent('click', function(){
slideVar.slideIn();
});
$('closeA').addEvent('click', function(){
slideVar.slideOut();
});
//EXAMPLE B
var slideElementB = $('slideB');
var slideVarB = new Fx.Slide(slideElementB, {
//Fx.Slide Options
mode: 'vertical', //default is 'vertical'
link: 'chain',
//Fx Events
onStart: function(){
$('start').highlight("#EBCC22");
},
onCancel: function(){
$('cancel').highlight("#EBCC22");
},
onComplete: function(){
$('complete').highlight("#EBCC22");
}
});
$('openB').addEvent('click', function(){
slideVarB.slideIn();
});
$('closeB').addEvent('click', function(){
slideVarB.slideOut();
});
});
</script>
</head>
<body>
<div id = "start" class = "ind">Start</div>
<div id = "cancel" class = "ind">Cancel</div>
<div id = "complete" class = "ind">Complete</div>
<button id = "openA">open A</button>
<button id = "closeA">close A</button>
<div id = "slideA" class = "slide">Here is some content - A. Notice the delay
before onComplete fires. This is due to the transition effect, the onComplete
will not fire until the slide element stops "elasticing." Also, notice that
if you click back and forth, it will "cancel" the previous call and give the
new one priority.</div>
<button id = "openB">open B</button>
<button id = "closeB">close B</button>
<div id = "slideB" class = "slide">Here is some content - B. Notice how
if you click me multiple times quickly I "chain" the events. This slide is
set up with the option "link: 'chain'"</div>
</body>
</html>
Output
Kliknij przyciski - openA, closeA, openB i closeB. Obserwuj zmiany, efekty i powiadomienia o zdarzeniach na wskaźnikach.