לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 23-10-2005, 16:43
צלמית המשתמש של דור
  דור דור אינו מחובר  
 
חבר מתאריך: 09.04.02
הודעות: 8,000
מדריך ליצירת סליידר

מה זה סליידר? כאן יש דוגמה קטנה שהכנתי בפלאש.
למה צריך סליידר? אם אתם רוצים לבנות ממשק גרפי נוח, שיהיה מובן למשתמש, סליידר יהיה בחירה טובה. אם למשל כתבתם מערכת עריכת תמונות, תוכלו להשתמש בסליידר כדי לבחור את איכות התמונה הרצויה.

הסבר על חלק ה-HTML:
יש לנו שתי שכבות, נקרא להן
slider ו-slider_track. השכבה הראשונה, slider, תשמש בתור החלק הנע של הסליידר.
השכבה השניה,
slider_track, תשמש בתור ה-"מסילה" של הסליידר, והיא תעזור לנו לקבוע גבולות. לשתי השכבות נקבע הגדרת position: absolute.

הסבר על חלק ה-JS:
קודם כל, ניצור פונקציה בשם
capture_start, ונשים אותה ב-onmousedown של השכבה slider. הפונקציה הולכת ככה:
קוד:
function capture_start() { document.onmousemove = update_slider_x; document.onmouseup = capture_stop; }

הסבר על הפונקציה:
השורה הראשונה שלה, אומרת שבכל פעם שהעכבר זז, תתבצע קריאה לפונקציה
update_slider_x (על הפונקציה הזו נדון בהמשך).
השורה השניה שלה, אומרת שבכל פעם שאני מפסיק ללחוץ על העכבר, תתבצע קריאה לפונקציה capture_stop.



עכשיו ניצור פונקציה בשם
capture_stop:
קוד:
function capture_stop() { document.onmousemove = null; document.onmouseup = null; }

הסבר על הפונקציה:
שתי השורות אומרות שאם אני מפסיק ללחוץ על העכבר/מזיז את העכבר, לא יקרה כלום.



עכשיו נעבור לחלק הרציני. ניצור פונקציה בשם update_slider_x:
קוד:
function update_slider_x(e) { var is_moz = (navigator.product == 'Gecko'); var is_ie = ((navigator.userAgent.toLowerCase().indexOf('msie' ) != -1) && (!is_moz)); if (is_moz) { var x = e.clientX; } else if (is_ie) { var x = event.clientX; } var left = findx('slider_track'); var xmax = parseInt(document.getElementById('slider_track').s tyle.width) + left; if (x >= left && x <= xmax) { document.getElementById('slider').style.left = x+'px'; } }

הסבר על הפונקציה:
תתעלמו מהפרמטר e. אל תייחסו לו שום משמעות.
המשתנה הראשון, is_moz, מחזיר משתנה בוליאני שקובע אם הדפדפן מבוסס Gecko (כמו mozilla) או לא.
המשתנה השני, קובע אם הדפדפן הוא IE או לא.
מבנה ה-if שנמצא אחרי שני המשתנים האלה, מחזיר את מיקומו של העכבר על המסך בציר האופקי - ציר ה-X.

המשתנה left, מחזיר את מיקום ה-X של השכבה slider_track, על ידי שימוש בפונקציה findx (עוג מעט נדבר גם על הפונקציה הזו).
המשתנה xmax, הוא בעצם מיקום ה-X המקסימלי שאליו מותר לסליידר להגיע. אנחנו משיגים את המיקום על ידי חיבור הרוחב של slider_track עם המשתנה left.

התנאי הבא, הוא בעצם בדיקת הגבול: אם מיקום ה-X של השכבה slider גדול ממיקום ה-X של השכבה slider_track, וקטן ממיקום ה-X המקסימלי שאליו מותר לו להגיע, נבצע את מה שיש בתוך התנאי. בתוך התנאי, אנחנו מזיזים את השכבה slider למיקום החדש שלה.



הפונקציה findx:
קוד:
function findx(id) { obj = document.getElementById(id) if (obj.offsetParent) { while (obj.offsetParent) { return obj.offsetLeft } } else if (obj.x) { return obj.x; } }

הפרמטר id מקבל מחרוזת, המכילה את ה-id של האלמנט שאנחנו רוצים לבדוק את מיקום ה-X שלו.
התנאי הראשון רלוונטי לכל הדפדפנים חוץ מ-Netscape 4. הוא מקבל את מיקום ה-X של האלמנט על ידי שימוש ב-offset, שזה המרחק של האלמנט מהקצה הימני של המסמך.
התנאי השני רלוונטי רק ל-Netscape 4. הוא הרבה יותר פשוט. ה-X הוא בסך הכל מאפיין של האלמנט.



לחצו כאן בכדי לראות את התוצאה של המדריך

אני רוצה להגיד תודה גדולה לדקל, שבלעדיו לא הייתם רואים את המדריך הזה.
מקווה שנהניתם מהמדריך, אשמח לתגובות/הערות/הארות/שאלות

נערך לאחרונה ע"י דור בתאריך 23-10-2005 בשעה 16:47.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 21:58

הדף נוצר ב 0.06 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר