تبليغاتX
آموزش جاوا اسكريپت - Teach Java Script
آشنايي با برنامه نويسي، آموزش جاوا اسكريپت ابتدايي
1گام آخر

كاش در دهكده عشـق فراواني بود
توي بـازار صداقت، كمي ارزاني بود

كاش اگر گاه، كمي لطف به هم مي‌كرديم
مختصـــر بـود ولــي ســاده و پنهانـي بــود

سلام

"اين وبلاگ را براي راه افتادن چندتا از دوستان، باز كردم. هم تشويقي براي شروع به كار آنها باشد و هم مرجعي براي جواب سوالهايشان. قصدم اين نبود كه زبان جاوا اسكريپت را به طور كامل، تدريس كنم. با وجود سايتهاي معتبر و تخصصي خارجي و ايراني، جايي براي چنين ادعايي نيست. ولي گاهي اوقات، اثري كه يك درس خصوصي و چند نفره دارد، يك كلاس عمومي، نخواهد داشت."

قريب يكسال پيش (پنجشنبه 19 آذر 1383)، با اين جملات، وبلاگ "آموزش جاوا اسكريپت" آغاز شد. آن روز به خاطر يك دوست خوب، نوشتم؛ و امروز كه آن دوست در بين ما نيست، در ميان شما دوستان خوب هستم.

الان كه به نوشته‌هاي آن روز نگاه مي‌كنم، از اينكه به هدفم نزديك شدم، خوشحالم؛ و خوشحالم كه اين درس، نيمه كاره نماند و به پايان رسيد؛ هرچند كه با مشكلاتي روبرو شد. تعداد دروسي كه در ذهنم بود، حدود 20 جلسه بود و خوشبختانه همينطور هم شد. از خدا خواستم كه از اين امتحان، رو سفيد بيرون بيايم و اميدوارم كه اينطور شده باشد. خدا را به خاطر فرصتي كه به من داد سپاسگزارم.

سرانجام كار، تو خوشند باشي و من رستگار

بعضي از دوستان، درس را جدي گرفتند و به نتيجه رسيدند، و بعضي به خاطر مشكلات يا سست عهدي، رفيق نيمه راه بودند. براي همه آنها آرزوي سلامت و موفقيت مي‌كنم.
از دوستاني كه مرا همراهي كرده و ابراز لطف نمودند، تشكر مي‌كنم.
از دوستاني كه به هر دليلي نتوانستم پاسخ نامه و سوالهايشان را بدهم عذرخواهي مي‌كنم. احتمال اينكه نامه‌يتان به دستم نرسيده باشد، يا پاسخ من، به دست شما، زياد است.
اگر در نوشتن درسها يا پاسخ به سوالها، تاخير نموده، و باعث تلف شدن وقتتان شدم، معذرت مي‌خواهم.

از دوستان خوبم ساحل، هستي، ايراني، mreza، الهام، رسول، ليلا، آشيل، جعفر، بهروز، مجتبي، پژمان قدرتي، حامد، وحيد، ناصر، رضا، حبیب میرزاي، کیومرث، هاني، ramyar، آزاده، هليا، Nice، محمد، افشين، سيد اكبر حسيني، اميررضا، سيد محسن هاشمي، علي، هنگامه، و ناشناس عزيز، تشكر فراوان كرده و همه را به خداي مهربان مي‌سپارم.

اين روزا بايد هممون براي هم سايه باشيم
شبـا يكـم دلـواپس كـودك همـسايه باشيم

اگـه بـه هـم كمـك كنيـم زنـدگـي ديـدنـي ميـشه
بر سر پيمان مي‌مونند دوستاي خوب تا هميشه

خدانگهدار

? نوشته شده در  دوشنبه 18 مهر1384ساعت 3:24  توسط راهنما | 

1جلسه 20

مفاهيم و واژه‌نامه

سلام
اين جلسه، مجموعه‌اي از مفاهيم و واژه‌هايي است كه در جلسات مختلف، بيان شده است. سعي شده كه مرتب و بدون دخل و تصرف نوشته شود؛ الا بعضي موارد كه نياز بوده. اين جلسه را هديه مي‌كنم به دوستان علاقمند، صادق و استوار وبلاگ جاوا اسكريپت.

« مفـاهيـم »

برنامه نويسي

زبان برنامه نويسي، وسيله‌اي است براي ساختن برنامه و نرم‌افزار مورد نياز ما.

به طور كلي مي‌توانيم برنامه‌هاي خود را به دو گروه، تقسيم كنيم:
1- برنامه‌هايي كه در محيط رايانه، استفاده مي‌شوند.
2- برنامه‌هايي كه در محيط وب و اينترنت قابل استفاده هستند.

زبان كاربري

بعضي از زبانهاي برنامه نويسي تحت وب، در طرف كاربر و كلاينت (Client) - يعني شما كه از اينترنت استفاده مي‌كنيد - اجراء مي‌شود. مانند JavaScript, JScript, VBScript.

زبان سِـروري

زبانهاي برنامه نويسي تحت وبي كه در طرف سرور (Server) - يعني سايتي كه شما از آن استفاده مي‌كنيد - اجراء مي‌شود. مانند asp, php.

جاوا اسكريپت

با جاوا اسكريپت، مي‌توانيم برنامه‌اي بنويسيم كه هم در رايانه و هم در محيط اينترنت، قابل اجراء باشد. البته زادگاه اصلي آن، اينترنت است. جاوا اسكريپت، از آن دسته از زبانهاست كه در طرف كاربر، عمل مي‌كند.

Object (شي)

هر چيزي كه در صفحه ما وجود دارد، يك شي حساب مي‌شود و مي‌توان از آن استفاده كرد و تغييرش داد. اولين شي موجود، خود صفحه و سند (document) است، كه قبلا با آن آشنا شده‌ايد.

Properties (خصوصيات)

هر شي، يك مشخصات و خصوصياتي دارد كه بيانگر كمّيت و كيفيت آنست. مثلا يك سند، داراي اين خصوصيات است: پس زمينه، عنوان (Title)، نوار وضعيت (Status)، نوار پيمايش (Scroll)، متن (Text)، لينك (Link).

Methods (متُد)

کاري که اشياء مي‌توانند انجام دهند، متد ناميده مي‌شود؛ مانند باز كردن يا بستن پنجره. شالوده و اصل يك زبان برنامه نويسي، متدهاي آن برنامه است، كه ما بايد آنها را به خوبي ياد گرفته و در جاي مناسب استفاده نماييم. متدها، توسط سازندگان زبان برنامه نويسي، نوشته و تهيه مي‌شود و ممكن است در نسخه‌هاي جديد آن زبان، تغيير داده شده، اضافه و تكميل شود.

Event (رويداد)

رويداد، عملياتي است كه كاربر، در يك صفحه انجام مي‌دهد. بعضي از رويدادها مشترك و عمومي هستند و بعضي مخصوص يك شي. بعضي از اين رويدادها را براي شما دسته بندي كرده‌ام كه حتما ذخيره نموده و به مرور آنرا كامل كنيد.

شرط

يكي از ابزار و دستورات مهم هر زبانِ برنامه نويسي، شرط است. آيا مي‌دانيد شرط چيست؟ براي درك مفهوم آن، احتياجي نيست به خود زحمت بدهيد؛ چون اين دستور، در زندگي من و شما به وفور يافت مي‌شود. اگر خورشيد درآيد، هوا روشن مي‌شود. اگر درس بخواني، قبول مي‌شوي.

ادات شرط

1. if
2. switch ... case
3. variable = (condition) ? true : false

معروفترين ادات شرط، if است.

ساختمان شرط

 • جمله شرطي، از سه قسمت اصلي، تشكيل شده است.
1- ادات شرط: كلمه‌اي كه شرط را مي‌رساند؛ مانند اگر.
2- شرط: جمله‌اي كه شرطِ انجام كاري، واقع شده.
3- مشروط يا جزا: جمله‌اي كه جزاي شرط و در جواب آن آمده؛ يعني در صورت تحقق شرط، آن نيز به وقوع مي‌پيوندد.

Operators (عملگرها)

در برنامه نويسي، از علامت و نشانه‌هايي استفاده مي‌شود كه به آن عمگر گفته مي‌شود. يكي از انواع عمگرها، عمگر شرطي مي‌باشد.

عمليات برنامه نويسي

 • يك عمليات برنامه نويسي، داراي سه بخش، است.
1. دريافت داده. در اين قسمت، اسكريپت، اطلاعاتي را كه نياز دارد، مي‌گيرد.
2. پردازش داده. در اين قسمت، اطلاعاتي كه تهيه كرده، تجزيه و تحليل مي‌كند.
3. نمايش داده. در اين قسمت، اطلاعات پردازش شده را، ارائه مي‌كند.

ثابت و متغير

بعضي از اطلاعاتي كه يك برنامه، به دست مي‌آورد، ثابت (Constant) است، و بعضي، متغير (Variable). متغير به اين معني كه يك چيز ثابت، مشخص و از پيش تعريف شده نيست. آنچه كه برنامه نويس، بيشتر با او سر و كار دارد، متغير است.

انواع متغير

1- رشته‌اي (String): حروف و كلمه
2- عددي (Number): اعداد و ارقام (اعداد صحيح و اعشاري)
3- منطقي (Boolean): بله و خير

متغير سراسري، عمومي (Global گلوبال)
اگر متغير را خارج از تابع بنويسيد، عمومي است؛ چون مي‌شود در سرتاسر برنامه، آنرا صدا زده و مورد استفاده قرار داد.

متغير محلي، خصوصي (Local لوكال)
اگر متغيري را داخل تابع تعريف كنيد، خصوصي است؛ يعني فقط در همان محل و همان تابع، كابرد دارد، و بيرون از آن، نه مي‌شود صدا زد و نه مي‌شود استفاده كرد.

زمان

زمان، داراي اجزا مختلف است؛ يعني انسان، آنرا به بخشهاي مختلف تقسيم كرده تا قابل استفاده باشد. قسمتي از آن، تاريخ (سال، ماه، هفته و روز) نام دارد، و قسمتي از آن، به اجزا كوچكتر (ساعت، دقيقه و ثانيه) تقسيم شده، و ساعت، ناميده مي‌شود. البته معيار تاريخ در برنامه نويسي، ميلادي است. براي تبديل به شمسي يا قمري، بايد از برنامه نويسي استفاده كنيد.

تابع

تابع يا همان فانِكشين (Function)، مجموعه‌اي از يك يا چند كد است كه در يك جا جمع شده و داراي نام شده‌اند.
آرگومان
: گاهي، داخل پرانتزي كه بعد از نام تابع قرار مي‌گيرد، چيزي نوشته مي‌شود به نام آرگومان كه يك نوع متغير است.

آرايه

آرايه، مجموعه‌اي از چند داده (ثابت و متغير) است كه به عنوان يك واحد شناخته شده و اعضاي آن، با كد، مشخص شده‌اند. به عبارت ديگر، تعدادي از اطلاعات كه در كنار هم قرار گرفته‌اند و يك وجه مشترك داشته و به يك نام خوانده مي‌شوند.

حلقه

 يكي ديگر از ويژگيهاي مفيد جاوا اسكريپت و همچنين ساير زبانهاي برنامه نويسي، توانايي ايجاد حلقه‌هاي تكرار، يا اجراي گروهي از دستورالعملها به صورت تكراري است. اين، يكي از كارهايي است كه رايانه‌ها قادرند تا به خوبي آنها را انجام دهند، و آن چيزي نيست جز انجام كارهاي تكراري با دقت بالا. در برنامه‌هاي اسكريپت، از حلقه‌هاي تكرار به عنوان يك ابزار قوي و مهم، استفاده‌هاي فراواني مي‌شود.
 

ادات حلقه

 • از روشهاي مختلفي براي ايجاد حلقه، استفاده مي‌شود.

1. for
2. While
3. do ... while

معروفترين ابزار حلقه، for است.

ساختمان حلقه

1. ابتداي حلقه: a = 0. اين عدد، شروع و ابتداي حلقه را معيّن مي‌كند.
2. انتهاي حلقه: a < 10. اين عدد، حداكثر و انتهاي حلقه - به عبارت ديگر، تعداد تكرار دستورات - را مشخص مي‌كند.
3. افزايش يا كاهش: اين پارامتر، مشخص مي‌كند كه حلقه، در هر بار اجرا، يك واحد زياد شود يا كم.
4. جواب حلقه: حلقه، بي شباهت به شرط نيست. به عبارت ديگر: اگر متغير ما (a)، از 0 تا 10 تداوم داشت، نمايش پيام، ادامه داشته باشد.

فرم

فرم وسيله‌اي است براي دريافت اطلاعات از كاربر.

method = نوع ارسال اطلاعات را معين مي‌كند، كه دو نوع است: post, get. اين دو روش با تفاوتهايي، عمليات ارسال را انجام ‌مي‌دهند. روش پُست، عمومي‌تر است و  از لحاظ امنيتي، برتري دارد. اگر متد را ننويسيد، از پُست، استفاده مي‌شود.
action = محلي را نشان مي‌دهد كه اطلاعات، براي پردازش، به آنجا ارسال خواهد شد؛ يعني آدرس يك صفحه است، كه در اينجا براي مثال، test.htm را انتخاب كرده‌ام.
name = نام فرم.
onSubmit = يك رويداد است. تابعي را كه در جاوا اسكريپت، نوشته‌ايد را صدا مي‌كند.
Get - Post
=
تفاوت بين اين دو، در چگونگي ارسال اطلاعات از فرم، به اسكريپت پردازشگر است.

  • اگر از روش گت، استفاده كنيد، مقدار اطلاعاتي كه مي‌توانيد ارسال كنيد، محدود است.
  • با استفاده از روش get، اطلاعات به دست آمده از فرم، به عنوان بخشي از يك URL، انتقال مي‌يابد؛ اما در روش post، اطلاعات، در حقيقت به صورت نامرئي، منتقل مي‌شود. اگر براي مثال، در روش گت، كاربر، يك رمز عبور را در فيلد پسورد، بنويسد، و فرد ديگري نيز در حال مشاهده صفحه نمايش كاربر باشد، به راحتي مي‌تواند از رمز عبور كاربر، آگاه شود. به عبارت ديگر، اين روش، در سطح امنيتي پايين‌تري از روش پست مي‌باشد.
  • صفحه‌اي كه حاوي فرمي با مشخصه گت است، مي‌تواند نشانه گذاري (Bookmark) شود؛ در حالي كه در روش پست، اين كار، ممكن نيست.

اشاره‌گر

اشاره‌گر (Cursor) - كه كاربران معمولا و به اشتباه، به آن موس هم مي‌گويند - همان شكلي است كه با حركت موس، در مانيتور، حركت مي‌كند و نمادي از انگشت و دست شماست براي اشاره به اشياء داخل صفحه.
 

« واژه نــامه »

كـُد (Code): دستور و فرماني كه به زبان برنامه نويسي، نوشته شده.
تَـگ (Tag): كوچكترين جزء يك كد. مثلا تگ سر = ؛ تگ بدنه = ؛ تگ اسكريپت = . هر تگ بايد در داخل اين دو علامت < >، قرار گيرد.
پارامتر (Parameter):
مقداري كه براي تگ، نوشته مي‌شود. مثلا براي تگ خط، معيّن مي‌كنيم كه از چه نوعي، به چه اندازه‌اي و چه رنگي باشد. مثال: كلمه ‍Color، در تگ Font، پارامتري است كه رنگ متن را مشخص مي‌كند. پارامتر را شايد بتوان اين گونه تعريف كرد كه "قيد حالت است براي تگ". تگ اسكريپت، هم داراي پارامترهايي است.
document
= سند، صفحه جاري، پنجره‌اي كه در آن كار مي‌كنيد.
document.bgColor = رنگ پس زمينه سند.
new Date: متدِ زمان به صورت كلي و مطلق است. بعد از آن بايد نوع زمان خود را مشخص كنيد؛ يعني چه قسمتي از زمان را مي‌خواهيد بدانيد؛ سال، ماه، هفته، روز و ... . به تنهايي چيزي را نشان نمي‌دهد.
toLocaleString: متدي براي به دست آوردن زمان كامل (تاريخ و ساعت) است كه به عنوان خصوصيت، براي زمان كلي استفاده مي‌شود.
document.write: متدي كه براي نوشتن متن در صفحه استفاده مي‌شود.
document.writeln: مانند دستور قبلي عمل مي‌كند؛ با اين تفاوت كه يك فاصله تا رشته قبلي، ايجاد مي‌كند.
; : به اين علامت، سِمي كالـِن (Semicolon) گفته مي‌شود كه در پايان هر دستور، مي‌آيد؛ هر چند در جاوا، اجباري نيست.
// : به اين علامت، كامنت (Comment) گفته مي‌شود كه براي نوشتن توضيح، در ميان كدهاي برنامه نويسي است. هر عبارتي كه بعد از اين علامت بيايد، توسط برنامه، خوانده و اجرا نمي‌شود و صرفا ً توضيحي است كه برنامه نويس، يادداشت كرده.
ID: آي‌دي، همان نام (Name) شي است؛ البته گاهي در عمل تفاوتهايي با هم دارند.
innerText:
با اين دستور، متن يك تگ در قسمت بدنه - مانند محتويات تگ پاراگراف - نمايش داده مي‌شود؛ و مي‌توانيم  آنرا تغيير داده و ويرايش كنيم.
out
erHTML - innerHTML - outerText:
اين 3 متد، شبيه دستور قبلي است؛ البته با كمي تفاوت.
setTimeout: دستور تايمر و زمان شمار است. بعد از آن، يك جفت پرانتز، قرار دارد كه داخلش، دو پارامتر نوشته مي‌شود:
1. اسم چيزي است كه قرار است اجرا شود؛ مانند يك تابع.
2. زماني كه تايمر در آن فعال خواهد شد. واحد زمان، ميلي ثانيه است. (1000 = يك ثانيه)
setInterval: دستور تايمر و زمان شمار است. مانند دستور قبل، عمل مي‌كند؛ با كمي تفاوت.
Table = جدول. <table>
Row
= سطر، ستون افقي.
Cell
= سلول، خانه‌هاي جدول.
window
= شي صفحه است، كه داراي  متدهاي مختلفي است.
window
.scroll = متد اسكرول صفحه. داخل پرانتز، دو پارامتر دارد كه دو عدد هستند كه موقعيت صفحه را نشان مي‌دهند. اولي، موقعيت فعلي صفحه؛ دومي، موقعيتي كه بايد به آنجا برسد.
window.scrollTo - window.scrollBy = دو متد ديگر از parent هستند. با تمرين، به دست آورديد كه چه كاري انجام مي‌دهند.
parent = معادل window است و در مورد اسكرول، مي‌تواند به جاي آن قرار گيرد.

به اميد ديدار
خدانگهدار

? نوشته شده در  دوشنبه 18 مهر1384ساعت 3:21  توسط راهنما | 

1جلسه 19

حركت 2

سلام

فرارسيدن ماه مبارك رمضان را به شما دوستان عزيز! تبريك مي‌گويم. اميدوارم كه اين ماه براي همه، پر از خير و بركت باشد.

تغييرات:
-
بحث "حركت دادن اشيا" به اين جلسه اضافه شده است. (جمعه 15 مهر)

بحث ما حركت است. در جلسه قبل، مشاهده كرديد كه حركت پنجره به چه راحتي انجام پذير است. در اين ساعت، خواهي ديد كه حركت اشيا به دنبال اشاره‌گر موس نيز به سهولت امكان دارد.

تعقيب اشاره‌گر

• براي اين عمليات، ابتدا موقعيت اشاره‌گر را به  دست مي‌آوريم. همانطور كه در تمرين جلسه قبل، اجرا شد، با اين دو دستور (event.clientY - event.clientX) مي‌شود موقعيت اشاره‌گر را گرفت.

نمونه:

موقعيت موس از بالا - clientY:

موقعيت موس از چپ - clientX:

• حالا بايد چيزي را كه مي‌خواهيد به دنبال اشاره‌گر، حركت كند مشخص نماييد. اين شي مي‌تواند از لحاظ ظاهر، متن يا عكس يا هر چيز ديگر، و از لحاظ محتوا، ثابت يا متغير باشد.
- سه متن بنويسيد؛ يك متن براي حركت عمودي، و يك متن براي حركت افقي، و يكي هم براي حركت كامل.
- هر كدام را داخل يك لايه قرار دهيد.
- لايه‌ها را به اين ترتيب نامگذاري نماييد: (div1 - divY - divX)
- استيل آنها را به اين صورت تعريف كنيد: (style=position: absolute). اين كد، به شي مورد نظر اجازه حركت مي‌دهد.

كد HTML:

<p><div id="div1" style="position: absolute;">متن</div></p>
<p><div id="divY" style="position: absolute;">عمودي</div></p>
<p><div id="divX" style="position: absolute;">افقي</div></p>

كد JavaScript:

function cursorPos() // تابع
{
// حركت عمودي و افقي
div1.style.top = event.clientY;
div1.style.left = event.clientX;
// حركت عمودي
divY.style.top = event.clientY;
// حركت افقي
divX.style.left = event.clientX;
}
document.onmousemove=cursorPos;

براي ديدن نمونه، اينجا كليك كنيد.

حركت دادن اشياء

در اين مبحث، خواهيم آموخت كه چگونه به وسيله موس، اشيا را جابجا كنيم؛ همانگونه كه در ويندوز به راحتي انجام مي‌شود.

• مراحل عمليات:

- ساختن شي مورد نظر
- به دست آوردن موقعيت اشاره‌گر
- به دست آوردن موقعيت شي مورد نظر
- تعريف كردن رويداد كليك و كشيدن

• شيئي كه براي اين كار در نظر گرفته‌ام، يك جدول است كه شبيه كادرهاي محاوره‌اي در ويندوز مي‌باشد.
- اين جدول، داراي دو سلول است. سلول اول، براي عنوان كادر و محل كشيدن و جابجايي، و سلول پايين، محل نوشته محتوي است.
- داخل سلول اول، يك لايه (div) قرار داده‌ام به نام (moveMe1). جدول را هم (moveMe)، نامگذاري نموده‌ام.
- استيل جدول را به اين صورت تعريف كنيد: (style=position: relative). اين كد، به شي مورد نظر اجازه حركت مي‌دهد.

كد HTML:

<table id="moveMe" style="position: relative;" border="0" width="200" bgcolor="#FBF9FB">
<tr>
<td bgcolor="#F6F4F6" align="center">
<div id="moveMe1">&nbsp;</div></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table>

كد JavaScript:

mouseover = true
function coordinates()
{
if (!moveMe)
{
return
}
if (event.srcElement.id == "moveMe1")
{
mouseover = true
// موقعيت جدول
pleft = moveMe.style.pixelLeft
ptop = moveMe.style.pixelTop
// موقعيت اشاره‌گر
xcoor = event.clientX
ycoor = event.clientY
document.onmousemove = funmove
}
}
function funmove()
{
if (mouseover && event.button == 1) // اگر كليك چپ شد
{
moveMe.style.pixelLeft = pleft + event.clientX-xcoor
moveMe.style.pixelTop = ptop + event.clientY-ycoor
moveMe1.style.cursor = "move"; // تغيير شكل اشاره‌گر
moveMe.style.filter = "alpha(opacity=50)"; // استفاده از فيلتر آلفا
return false
}
}
function mouseup()
{
moveMe1.style.cursor = ""; // شكل عادي اشاره‌گر
moveMe.style.filter = "alpha(opacity=100)"; // از كار انداختن فيلتر آلفا
mouseover = false
}
document.onmousedown=coordinates
document.onmouseup=mouseup
 

شرح كد:
- moveMe1.style.cursor = move = در جلسه 17، خوانديم كه شكل اشاره‌گر، قابل تغيير است. در اينجا، شكل "حركت" را انتخاب مي‌كنيم.
event.button == 1 = در جلسه 17، ديده شد كه كد كليك چپ، 1 است. با به دست آوردن اين كد، مي‌فهميم كه موس، در حالت كليك باقي مانده؛ يعني همان كشيدن به وسيله موس.
- moveMe.style.filter = "alpha(opacity=50)" = به وسيله اين كد، كه از زبان HTML است، به جدول خود، فيلتر آلفا، يا همان كمرنگ شدن در حالت جابجايي مي‌دهيم.

براي ديدن نمونه، اينجا كليك كنيد.

همانطور كه مشاهده كرديد، اين كار زيبا به سادگي امكان پذير است. شما هم مي‌توانيد در پايگاه و حتي وبلاگ خود، از كادرهاي متحرك استفاده كنيد. كادرهايي كه كاربر مي‌تواند آنها را جابجا نمايد. با به كارگيري كمي ذوق و سليقه، كادرهاي زيباتر، طبيعي‌تر و داراي قابليت بيشتري - مانند امكان كمينه (ميني مايز) كردن و يا بستن كادر - خواهيد ساخت.

اميدوارم كه اين درس برايتان مفيد بوده و از آن لذت ببريد.
به اميد ديدار
خدانگهدار

? نوشته شده در  چهارشنبه 13 مهر1384ساعت 17:11  توسط راهنما | 

1جلسه 18

حركت 1
حركت پنجره

تغييرات:
به همين جلسه مطالبي (حركت و تغيير اندازه پنجره) اضافه شد. (شنبه 5 شهريور)

سلام

مفهوم حركت در رايانه و به خصوص وب، بحث جذاب و كاربردي است كه هم باعث زيبايي صفحات مي‌شود، هم توجه بيننده را به خود جلب مي‌كند و هم در بهتر ارايه كردن مطالب، دست ما را باز مي‌گذارد.

براي دو مورد اول، مثالهاي فراواني در پايگاه و وبلاگها وجود دارد. مثل اشكال و نوشته‌هايي كه به دنبال موس حركت مي‌كنند؛ يا ستاره‌هايي كه در صفحه، پخش مي‌شوند؛ يا نوشته‌هايي كه در نوار عنوان يا نوار وضعيت، در حال حركت هستند.

همانطور كه بهره‌برداري به جا از اين ابزار، باعث زيبايي و كارايي مي‌شود، استفاده بي‌مورد يا زيادي - كه متاسفانه در بعضي از وبلاگها مشاهده مي‌شود - باعث اذيت و خسته شدن بيننده خواهد شد؛ مخصوصا در دو نوار عنوان و وضعيت. به ياد داشته باشيد كه اين دو مكان، ساخته شده‌اند براي كار مهمتري؛ نه براي بازي و حركت بي‌مورد نوشته‌ها.

مفهوم حركت

حركت، نسبي است. كم و بيش با اين جمله آشنا هستيد. نظريه "نسبيت حركت"، مي‌گويد كه حركت شي، نسبت به اطراف او سنجيده مي‌شود. تصور كنيد در قطار هستيد. شما نسبت به اشيا بيرون از قطار، در حال حركت هستيد. از بعضي دور مي‌شويد و به بعضي نزديك؛ كه اين بستگي به "جهت حركت" شما دارد. اما نسبت به خود قطار، حركتي نداريد؛ مگر اينكه در همان قطار، شروع به راه رفتن كنيد.

كره زمين براي ما ثابت و بي‌حركت است؛ اما نسبت به كهكشان، جـِـرم كوچكي است در حال حركت. اشياء داخل صفحه وب نيز همين حالت را دارند؛ كه بزرگترين و مهمترين آن، خود پنجره (window) است.

انواع حركت

به يك صفحه، خوب نگاه كنيد. به نظر شما چه چيزهايي مي‌توانند حركت كنند؟ آيا همه حركتها، از يك نوع است؟ عامل اصلي حركت چيست؟

ظاهرا مي‌شود گفت هر چيزي كه در صفحه وجود دارد، قابل حركت است. ظاهرا حركتها از يك نوع نيستند؛ چون "نيروي محركه" آنها تفاوت دارد. چه چيز باعث حركت اشاره‌گر موس مي‌شود؟ خود پنجره قابل حركت است. مي‌توانيد با كليك بر روي نوار عنوان، آنرا گرفته و به هر نقطه كه تمايل داريد بكشيد. اگر تغيير اندازه را هم نوعي حركت بدانيم، با نوع متفاوتي از حركت روبرو خواهيم شد.

قالب حركت

در رايانه، قالبي وجود دارد كه موقعيت اشيا، نسبت به آن سنجيده مي‌شود. بالا و پايين، چپ و راست. اين چهار جهت اصلي، قالب ما هستند و موقعيت يك آيكون، نوشته، عكس يا پنجره، نسبت به آنها سنجيده مي‌شود. چرا مي‌گوييم اين پنجره از آن پنجره بالاتر است؟ چون نسبت به بالا، نزديكتر است.

اگر اين بخش را هم خوب درك كرده باشيد، متوجه مي‌شويد كه براي شروع كار، لازم است "موقعيت جغرافيايي" يا همان "طول و عرض جغرافيايي" را به دست بياوريم. خوشبختانه در زبان جاوا اسكريپت، دستورات لازم براي به دست آوردن آن، وجود دارد.

از چهار جهت اصلي، دو جهت، معيار هستند؛ بالا و چپ. البته ما فارسي‌ زبانها، چون از راست به چپ مي‌نويسيم و آرايش صفحات ما از راست به چپ است، بهتر است تا آنجا كه ممكن است، بالا و راست را معيار خود قرار دهيم.

طول جغرافيايي - فاصله از بالا - را با y (ايگرگ)،  و عرض جغرافيايي - فاصله از چپ - را با x (ايكس) نشان مي‌دهند.

جدولي را تهيه كرده‌ام كه راه به دست آوردن اين اندازه‌ها را به شما نشان مي‌دهد.

براي ديدن جدول، اينجا كليك كنيد.

حركت پنجره

براي حركت پنجره، دو دستور وجود دارد.

1- window.moveBy (x, y)

با اين دستور، مي‌توان پنجره را يكباره به منطقه‌اي كه با عدد مشخص (x, y) مي‌شود، منتقل كرد.

2- window.moveTo (x, y)

اين دستور مانند دستور قبل عمل مي‌كند؛ با اين تفاوت كه اگر آنرا در يك حلقه قرار دهيم، به آهستگي پنجره را حركت مي‌دهد.

كد: كافي است اين كد را داخل يك اسكريپت قرار داده و صفحه را باز كنيد.

for(a = 1; a <= 250; a++) {window.moveTo (250, a)};

تغيير اندازه پنجره

براي تغيير اندازه پنجره، دو دستور وجود دارد.

1- window.resizeTo (x, y)

با اين دستور مي‌توان اندازه پنجره را تغيير داد و اگر آنرا در يك حلقه قرار دهيم، به آهستگي اندازه پنجره را تغيير مي‌دهد.

كد:

for(a = 1; a <= 500; a++) {window.resizeTo (100, a)};
for(b = 1; b <= 500; b++) {window.resizeTo (b, 500)};

2- window.resizeBy (x, y)

اين دستور هم براي تغيير اندازه است؛ اما به دقت و قدرت دستور قبلي نيست.

به اميد ديدار
خدانگهدار

? نوشته شده در  پنجشنبه 3 شهریور1384ساعت 4:23  توسط راهنما | 

1كتابخانه وب

كتابخانه وب

سلام

تغييرات:
- به كتابخانه وب، جستجو اضافه شد (يكشنبه 16 مرداد)
- به جلسه قبل، بحث "اشاره‌گر" اضافه شد. (چهارشنبه 12 مرداد)

خدمت همه دوستان و تازه واردان عزيز، سلام و خسته نباشيد، و خوش آمد عرض مي‌كنم. از كساني كه از مطالب وبلاگ، خوششان آمده و ابراز لطف نموده‌اند تشكر مي‌كنم.

قرار بود اين جلسه را اختصاص دهم به معرفي چند نرم افزار تخصصي و مفيد، كه مسلما شما را در نوشتن و عيب‌يابي كدها، كمك مي‌كند. اما همانطور كه قبلا گفتم، آرزويم، يك بانك و مرجع عمومي و كامل است.

اين طرح بزرگ، يك مشكل بزرگ داشت، و آن كوچكي من است. هم اطلاعاتم محدود است، و هم اينكه هميشه در بين شما نيستم كه اين كار را انجام دهم. احتياج به همكاري علاقمندان بيشتر است. براي همين، بانكي را تهيه كردم كه باز است و هركسي مي‌تواند نرم‌افزاري را كه مي‌شناسد معرفي كند. نام اين بانك را "كتابخانه وب" گذاشتم كه لينكش در سمت چپ همين وبلاگ قرار دارد.

اختصاص به زباني ندارد. هرآنچه كه مربوط به طراحي و برنامه نويسي وب است. اين پروژه، به صورت آزمايشي راه‌اندازي شده است. البته اين به نظر قاصر و ناقص راهنماست. براي كامل شدن اين پروژه، احتياج به راهنمايي و نظر شماست.

به اميد ديدار
خدانگهدار

? نوشته شده در  پنجشنبه 30 تیر1384ساعت 18:37  توسط راهنما | 

 

نام:

تاريخ آخرين بازديد:
 
تعداد بازديد شما:
 

 

» بلاگفا
» صفحه نخست
» پست الکترونیک
» آرشیو

بايگاني

 
» جلسه1. گام اول
» جلسه2. برنامه نويسي
» جلسه3. HTML
» جلسه4. اولين دستور
» جلسه5. پارامتر
» جلسه6. جاواي باهوش
» جلسه7. شرط 2
» جلسه8. مفاهيم
» جلسه9. ثابت و متغير
» جلسه10. انواع متغير
» جلسه11. تابع
» جلسه12. آرايه
» يك پروژه. ساعت
» جلسه13. حلقه
» جلسه14. حلقه 2
» فراخوان. بازي
» جلسه15. فـُرم
» جلسه16. دستور زبان
» جلسه17. موس و ...
» كتابخانه وب
» جلسه 18. حركت
» جلسه 19. حركت 2
» گام آخر
 

پیوندها

 
» استاد آنلاين
» ايران جاوا اسكريپت
» پرديس
» سبز هزاره
» سوم
» مدرسه وب
» مركز اطلاع رساني ...
» مقاله درباره جاوا
» آموزش حرفه‌اي
» آموزش ريجستري
» آموزش كامپيوتر
» انجمن باشگاه دانش
» انجمن مجيد آنلاين
» ايميل آزاد
 

جستجو در گوگل