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

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



  #1  
ישן 10-02-2006, 13:07
צלמית המשתמש של S - Designer
  משתמש זכר S - Designer S - Designer אינו מחובר  
 
חבר מתאריך: 18.12.03
הודעות: 4,187
כתבה מדריך | יצירת טקסט נגלל ע"פ כללי xHTML 1.0 Transitional.

מדריך - טקסט נגלל (marquee) התומך בתקן xHTML 1.0 Transitional:
ואני מאמין שזה יעזור לרבים פה. לצערי במדריך השתמשת ב- iframe (לצורך כל שהוא, שבהמשך אני אסביר עליו), ולכן הסקריפט לא יתמוך ב- strict.
אז בואו ונתחיל.

דבר ראשון צרו דף xHTML עם iframe בתוכו וכמובן כוונו את ה- src של ה- iframe לדף בו ימצא הסקריפט, בנוסף העלימו את פסי הגלילה בעזרת המאפיין "scrolling". כלומר:
קוד:
<iframe src="scroll.html" scrolling="no" style="height:20px; width:400px; padding:0px;"></iframe>
טיפ: ממולץ להוסיף את שלושת המאפיינים הנוספים שהכנסתי ל- style של ה- iframe כדי שסקריפט יצא טוב.
ב- iframe השתמשתי כדי להעלים את הטקסט כאשר הוא מגיע לקצה, ולכן אין תמיכה ב- strict.

עכשיו ניצור דף xHTML נוסף בו ימצא הסריפט שגורם לטקסט לזוז.

אז איך זה עובד?
אנחנו קובעים מיקום אבסולטי לטקסט בדף, המקום הראשוני שנקבע למשפט הוא מינוס אורך ה- span בו ישכון המשפט זאת כדי שבהתחלת הגלילה הטקסט יהיה מוסתר. דבר ראשון יוצרים span עם טקסט בתוכו ומגדירים מיקום אבסולטי:
קוד:
<span id="scroll" style="position:absolute; width:auto;">הטקסט שלכם</span>
לאחר מכן אנחנו יוצרים את הפונקציה הבאה שמגדירה את המיקום האבולוטי מ- left (אם רוצים כיוון גלילה לצד השני, יש להפוך את הסקריפט) ומפעילה את הפונקציה שמזיזה את הטקסט (ע"י שימוש ב- SetTimeout).הפונקציה הזאת תופעלכאשרהדף יעלה (כלומר onload בתגית ה- body):
קוד:
document.getElementById('scroll').style.left=-parseInt(document.getElementById('scroll').offsetW idth)+"px"; setTimeout('scroll();',1);
השורה הראשונה זהו המיקום של הטקסט מצידו השמאלי של המסך וגם אורך ה- span שבותוכו נמצא הטקסט (זאת כדי שהטקסט יעם כשצריך ויופיע כשצריך). השימוש בפונקציה זו נעשה כדי שגם אתרים דינמיים בהם אורך המשפט לא קבוע יוכלו להשתמש בסקריפט הזה.

נכתוב פונקציה נוספת שנקראת scroll (כפי שכתוב ב- SetTimeout בפונקציה הראשונה). בפונקציה זו שחוזרת על עצמה כל הזמן בעזרת SetTimeout נשלוט על מיקום הטקסט. יש לדאוג שכל פעם הטקסט יזוז פיקסל אחד ימינה וכאשר קצו השמאלי של הטקסט יגיע לסוף ה- iframe הטקסט יחזור למיקום ההתחלתי שלו (השורה הראשונה בפונקציה הראשונה). וכך זה יעשה:
קוד:
var x=parseInt(document.getElementById('scroll').style .left); if(x>400) x=-parseInt(document.getElementById('scroll').offsetW idth); x++; document.getElementById('scroll').style.left=x+"px"; setTimeout('scroll();',1);

חשוב: במקום 400 עליכם להכניס את רוחב ה- iframe בו יושב הדף המכי את הסקריפט.
וזהו, הפונקציה עובדת.

דוגמה לסקריפט בפעולה.


בהצלחה!

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

_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
Pentax K100D + Pentax SMCP-DA 18-55mm f/3.5-5.6 AL + SMC Pentax-M Macro 1:4 50mm + SMC Pentax 1:2.8/105mm + SMC Pentax-M 1:2.8 35mm + SMC Pentax 1:1.4/50mm


תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #8  
ישן 12-02-2006, 03:12
  משתמש זכר Silver Strike Silver Strike אינו מחובר  
 
חבר מתאריך: 10.09.04
הודעות: 1,032
שלח הודעה דרך ICQ אל Silver Strike שלח הודעה דרך MSN אל Silver Strike
כמה הערות....
בתגובה להודעה מספר 1 שנכתבה על ידי S - Designer שמתחילה ב "מדריך | יצירת טקסט נגלל ע"פ כללי xHTML 1.0 Transitional."

דבר ראשון, כל הכבוד על היוזמה של כתיבת המדריך
שנית, לדעתי ישנם מספר דברים שזקוקים לטיפול:
1. אתה פונה לאלמנט div עם ה-id בשם scroll מספר פעמים - יהיה יותר יעיל להכניס אותו למשתנה ולקרוא למשתנה עצמו.
2. לא ממש הבנתי למה אתה משתמש ב-parseInt. מה המטרה?
3. אתה משתמש ב-setTimeout כאשר יותר מתאים להשתמש ב-setInterval.
4. המלצה שלי היא להמנע משמות משתנים פשטניים. במקום להגדיר x כשם משתנה עדיף לקרוא לו increment.
5. המילה scroll היא מילה שמורה. כדי להמנע מבעיות מומלץ לשנות אותה. אני באופן כללי ממליץ להשתמש בקביעת שמות אחרת. במקום לקרוא לפונקציה scroll לקרוא לה fnScroll. למעשה אתה מכניס לפני השם את סוגו (fn לפונקציות, o לאובייקטים, s למחרוזות וכן הלאה).

עוד מספר דברים בנוגע לשאר הדף:
1. להמנע מקריאה לפונקציות inline (אתה למעשה יוצר eval שמוריד ממהירות העיבוד). אותו דבר חל גם על הגדרות CSS.
2. ב-XHTML כל הקוד חייב להיות באותיות קטנות (גם ה-CSS).
3. מומלץ להגדיר משפחת פונט לא רק את הפונט עצמו (למשתמשי לינוקס ו/או מק וכמו כן משתמשים בעלי מערכת windows ישנה אין את הפונט arial).
4. הגדרת font מורישה את עצמה לכל האלמטים בדף (מלבד טפסים), לכן ברוב המקרים אין צורך להגדיר באמצעות * אלה רק הגדרה לתג ה-body.

מחכה לראות מדריכים נוספים
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #9  
ישן 12-02-2006, 11:54
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 8 שנכתבה על ידי Silver Strike שמתחילה ב "כמה הערות...."

3. אתה כנראה אומר את זה (תקן אותי אם אני טועה) בגלל שהוא קורא לפונקציה מתוך הפונקציה, אך נראה לי שלא צריך להשתמש ב-setInterval אלא פשוט להוציא את ה-setTimeout מהפונקציה, זה נראה יותר ממיותר, הקריאה כבר הוגדרה בקריאה הראשונה לפונקציה.
4. כידוע משתמשים הרבה ב-i שאולי זה בעצם קישור של increment (למרות שהשימוש הידוע הוא בעיקר בלולאה, זה יכול להתאים גם כאן).

חבל שלא המשכת את המספור הקודם, פשוט לצורך נוחות התגובה (:
1. (נ/)אשמח לשמוע יותר על ההבדל במאשבים בין קוד inline לבין פונקציה המוגדרת בתגית script.
4. למיטב זכרוני זה בפירוש לא משפיע על תוכן הטבלה ולכן בהרבה מאד דפים הגדרתי בנוסף את הגדרות הגופן גם ל-td

S - Designer, אני רואה שהסתדרת יפה מאד גם עם שכבה במקום מסגרת, מה שגורם לקוד להיות תקני גם ב-strict.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #11  
ישן 12-02-2006, 15:44
  משתמש זכר Silver Strike Silver Strike אינו מחובר  
 
חבר מתאריך: 10.09.04
הודעות: 1,032
שלח הודעה דרך ICQ אל Silver Strike שלח הודעה דרך MSN אל Silver Strike
בתגובה להודעה מספר 9 שנכתבה על ידי ישראל K שמתחילה ב "3. אתה כנראה אומר את זה (תקן..."

בנוגע ל-setTimeout:
לא בגלל שהוא קורא לפונקציה מתוך פונקציה.
אלא בגלל לשזו לא המטרה של setTimeout - שמטרתו פרק זמן לביצוע הפעולה (אני לא משהו בניסוח היום )
שימוש ב-setInterval גורמת להרצת הפעולה כל x מילישניות - לי זה נראה יותר מתאים

בנוגע לשמות משתנים:
המשתנה i בתוך לולאות נהפך למן סטנדרט דה-פקטו, ורוב (אם לא כל) התכנתים משתמשים בו. זה נלמד כך בספרים ומדריכים וכן בכל קוד שתראה ברחבי האינטרנט זה נראה ככה (עד כמה שאני יודע). x לעומת זאת לא ממש מסביר מה המשתנה ויכול לגרום לבלבול (במקרה זה העניין שולי, אבל הרעיון הוא ללמוד כתיבה נכונה).

קוד inline:
כאשר אתה כותב קוד inine הדפדפן מבצע את רינדור הדף כך:
* קורא את תוכן הדף
* מפעיל את מנוע ה-JS או ה-CSS.
* מרנדר את הקוד.
* מכבה את המנוע.
* מסיים את רינדור שאר הדף
* מפעיל מחדש את המנוע
* מרנדר את קוד eval

מהו eval - למעשה eval לוקח מחרוזת וממיר אותה לפקודה, למרות שיש נוחות בזה (והרבה מדריכים מהללים את העוצמה בשימוש הזה) יש גם ירידה משמעותית בביצועים. אני אשתדל להעלות benchmark יותר מאוחר.

בנוגע לירושת CSS:
עד כה לא נתקלתי בטבלה שלא קיבלה את ההגדרות של הפונט. אבל תמיד יכול להיות שאני מדחיק


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

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #12  
ישן 12-02-2006, 23:58
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 11 שנכתבה על ידי Silver Strike שמתחילה ב "בנוגע ל-setTimeout: לא בגלל..."

בנוגע ל"outInterval", זה טעות שלי, חשבתי שזה בדיוק הפוך, לכן אמרתי מה שאמרתי, עכשיו בדקתי שוב, מסתדר שטעיתי.
ולגבי מה שאמרתי: צריך בכלל להוציא את ה-setTimeout מהפונקציה השניה, וכמו שאמרת להגדיר interval בפונקציה הראשונה.

אגב, eval למיטב ידעתי זה קיצור של evaluate, ובעברית "להעריך" [סביר להניח שאחד המציצים או מאלו שיציצו כאן עדיין לא ידע...].

לגבי השפעת הגדרות הגופן ב-body, בדקתי ולא טעית, הצדק עמך.
בדקתי כרגע ב-FF 1.5 ובאקספלורר, יתכן שהבעיה המדובר קיימת ב-FF 1 - 1.0.7, למיטב זכרוני תוכל אף למצוא דיונים בנושא בפורום. זכור לי שיש מספר שאלות לגבי הגדרה זו שלא פעלה, והפתרון היה שצריך להגדיר את ה-td בנוסף להגדרת ה-body, לפי הבדיקה כנראה שזה כבר לא קיים בגירסת ה-FF העדכנית.

בענין המספור... לא יפה שלא הזמנת אותנו לדיון... בכל אופן אני לעיתים כשמדובר בשני מיספורים שאינם קשורים אני ממספר רשימה אחת באותיות, אחרת במספרים (ניתן גם למספר בעברית, אנגלית, עשרוני, בינארי, אוקאלי, אקסה או לטינית וכך להגיע למספר רב של רשימות ). בכל אופן אתמול קרה לי מקרה דוגמא, והיות ולקחתי בחשבון את הצורך שהמגיב יוכל לציין על מה הוא מגיב, שיניתי לאחר העריכה את אחת הרשימות לאויות - אני רק לא מחייב שזה היה אתמול, תלוי לפי איזה שעון... [יש israel (מדינה), ויש yisrael (שמי)].
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

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

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

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