20-03-2010, 18:29
|
מנהל
|
|
חבר מתאריך: 26.07.08
הודעות: 6,473
|
|
ציטוט:
במקור נכתב על ידי shushu304
וכן אנייודע בקשר להגדרה של ה-int וכל זה שלא חייב בהתחלה את ה- var
|
ההפך - לפעמים יש צורך ב-var, תלוי בצורך שלך. תקרא משתנה - איפה מוגדר ואיפה לא? ; או: Variable scope
מה שהתכוונתי בהתחלה זה שאתה מגדיר ארבעה משתנים שמקבלים ערך המוחזר מפונקציית setInterval, אבל למעשה מספיק לך להשתמש בשני משתנים. ככה שלדוגמא, במקום לכתוב:
קוד:
// first function - start all
function start_move()
{
int_move_front_x = setInterval('move_x()',10);
int_move_front_y = setInterval('move_y()',10);
}
// start move x
function move_x()
{
if (i_x <= z_x)
{
i_x += speed;
document.getElementById('pic').style.left= i_x+"px";
}
if (i_x > z_x)
{
clearInterval(int_move_front_x);
int_move_back_x = setInterval('move_x_back',10);
alert('back x start');
}
}
היית כותב:
קוד:
// first function - start all
function start_move()
{
int_move_x = setInterval('move_x()',10); // line changed
int_move_y = setInterval('move_y()',10); // line changed
}
// start move x
function move_x()
{
if (i_x <= z_x)
{
i_x += speed;
document.getElementById('pic').style.left= i_x+"px";
}
if (i_x > z_x)
{
clearInterval(int_move_x); // line changed
int_move_x = setInterval('move_x_back()',10); // line changed
alert('back x start');
}
}
התייחסתי בעיקר לציר x, והדגשתי את השורות ששיניתי עם ההערה "line changed".
סה"כ רציתי לציין ששניים מהמשתנים מיותרים (זה בסדר להשתמש בהם, אבל אין צורך).
ציטוט:
במקור נכתב על ידי shushu304
עכשיו נשאר לי לגלות למה זה ממשיך יותר מרוחב וגובה החלון ויוצר סקרולבר, יש לך רעיון בקשר לזה?
|
כן - אני חושב שזה בגלל שלא התחשבת בגודל של האלמנט. בקוד שלך התייחסת לאלמנט בתור נקודה, ולא בתור אלמנט עם מימדים של אורך ורוחב. תוסיף לקוד התחשבות ברוחבו וגובהו. כדי לקבל ערך נכון של מימדי האלמנט, תסתכל בטבלאות התאימות שבאתר quirksmode.org (זה טוב להכיר את כולם).
|