אחרי שבמאמרים הקודמים למדנו על סלקטורים ועל אירועים, הגיע הזמן למשהו ש-jQuery ממש טובים בו ואלו הם האפקטים. לרשות jQuery אפקטים רבים ובמאמר זה אעבור על כולם. רוב האפקטים באים בזוגות – אפקט והאפקט הנגדי שלו. בדוגמאות אני משתמש באלמנט div ובכפתור שמפעיל אירוע toggle.
באופן עקרוני כמעט כל פקודות האפקטים נראות זהות, ראשית אני יוצר סלקטור לאלמנט, למשל #mydiv שיבחר את האלמנט עם id=mydiv ואחרי כן אני כותב את הפונקציה שמבצעת את האפקט עם סוגריים שבתוכה יש פרמטרים שונים בהתאם לסוג האפקט – למשל slow/fast. ניתן גם להוסיף לרוב האפקטים גם Callback.
Hide/Show
הסינטקס הוא די פשוט, כל מה שאני צריך זה לכתוב את שם האלמנט שאני רוצה להחביא או להראות ואז את הפונקציה. לשם הדוגמא:
$("#mydiv1").hide();
וככה זה נראה עם אירוע toggle:
וככה זה נראה כמובן:
<script type="text/javascript">
$(document).ready(function() {
$("#myButton1").toggle(function () {
alert("Show");
$("#mydiv1").show();
} , function () {
$("#mydiv1").hide();
});
});
</script>
כמובן שאפשר להכניס פרמטרים שיהפכו את ה-HideShow לקצת יותר מעניינים. הפרמטרים האלו הם slow ו-fast על מנת לקבוע את קצת ההעלמות או קצב ההצגה. אפשר גם להכניס מספר במילישניות.
וגם זה די פשוט, הנה, תסתכלו על הקוד בעצמכם:
<p>
<script type="text/javascript">
$(document).ready(function() {
$("#myButton2").toggle(function () {
$("#mydiv2").show("slow");
} , function () {
$("#mydiv2").hide("slow");
});
});
</script>
</p>
אפשר גם לשים callback מיד לאחר הגדרת המהירות, רק לא לשכוח להפריד בפסיק.
FadeInFadeOut
העלמה קצת יותר בסטייל היא באמצעות פייד אין ופייד אאוט. גם זה פשוט ביותר – סוג האלמנט ואז הפקודה. רק הפעם חייבים לכתוב slow, fast או מספר במילישניות.
<script type="text/javascript">
$(document).ready(function() {
$("#myButton3").toggle(function () {
$("#mydiv3").fadeOut("slow");
} , function () {
$("#mydiv3").fadeIn("slow");
});
});
</script>
FadeTo
אם אני רוצה להפוך אלמנט לחצי שקוף, זה האפקט שבו אני אשתמש. כל מה שאני צריך לעשות זה לכתוב את הפקודה fadeTo ולציין בפרמטרים שלה את המהירות ואת מידת הנראות מ-0 (שקוף) ועד 1 (לא שקוף).
וכך נראה הקוד:
<script type="text/javascript">
$(document).ready(function() {
$("#myButton4").toggle(function () {
$("#mydiv4").fadeTo("slow", 0.33);
} , function () {
$("#mydiv4").fadeTo("slow", 1);
});
});
</script>
Slide Down/Slide Up
גם זו אפקט להעלמה ולהצגה של אלמנטים, אך הוא עושה את זה בצורה שונה קצת מהאפקטים הקודמים. השימוש שלו הוא פשוט ביותר ודומה לחלוטין ל-hideshow.
וככה זה נראה:
<script type="text/javascript">
$(document).ready(function() {
$("#myButton5").toggle(function () {
$("#mydiv5").slideUp("slow");
} , function () {
$("#mydiv5").slideDown("slow");
});
});
</script>
במאמר הבא נמשיך ללמוד על אפקטים ובהם על האפקט המעניין של אנימציות וכן על toggles שיכולים לחסוך עוד קצת קוד בכל הנוגע לאפקטים שלמדנו במאמר הזה.