معرفی و دانلود بهترین ادیتورهای متن (WYSIWYG)

یکشنبه, ۱۹ اردیبهشت ۱۳۸۹

اگر شما هم برنامه نویس و توسعه دهنده باشید حتما با مشکل استفاده و یافتن ادیتورهای متن  HTML برای بخش های از سایتهایی که طراحی میکنید روبرو شده اید. پیدا کردن ادیتوری رایگان و با امکانات مناسب از مسائل برنامه نویسان میباشد. در این پست قصد دارم ۱۰ ادیتوراکثرا رایگان و بعضا اوپن سورس را به شما معرفی کنم که بتوانید از آنها در پروژه های خود استفاده نمایید. البته ضعف تمامی آنها این است که بصورت پیش فرض “راست چین” را پشتیبانی نمیکنند اما با توجه به در اختیار بودن سورس این ادیتورها شما میتوانید این قابلیت را در انها بگنجانید :

۱٫ NicEdit

Demo | Download

ادیتوری بسیار ساده، کارآمد و سبک و قابلیت خصوصی سازی آن هم جالب توجه است. شما میتوانید بخش های مورد نظر خود را به راحتی دانلود و فقط از آنها استفاده نمایید.

۲٫ TinyMCE

Demo | Download

TineMCE بسیار کاربردی و با محیطی کاربرپسندانه و مشابه ورد. این ادیتور در ورد پرس و بسیاری از CMS های دیگر مورد استفاده قرار گرفته. اپن سورس است و بسیار قدرتمند

۳٫ CKEditor

Demo | Download

CKeditor ورژن جدید ادیتور FCKeditor میباشد که تمامی نقاط ضعف خود را برطرف کرده و بسیار کاربرپسند و کاربردی و دارای محیطی مانند ورد و Open Office میباشد.

۴٫ YUI Rich Text Editor

DemoDownload

ادیتور توسعه داده شده توسط تیم یاهو

۵٫ MarkItUp!

Demo | Download

Markitup در حقیقت یک افزونه جی کوئری است و همچنین یک WYSIWYG نمیباشد اما تمامی قابلیتهای ابتدایی یک WYSIWYG را داراست، همچنین شما متیوانید نتیجه کدهای خود را توسط دکمه preview در همان لحظه و در پایین این ادیتور مشاهده نمایید.

۶٫ FreeTextBox

Demo | Download

FreeTextBox ادیتوری مخصوص Asp.net میباشد، پس میتوان حدس زد که این نرم افزار اوپن سورس نمیاشد اما نسخه رایگان آن امکانات خوبی را در اختیار شما قرار میدهد.

۷٫ MooEditable

Demo | Download

همانطوری که از نام این ادیتور بر می آید، ادیتوری بر اساس کتابخانه موتولز (MooTools)

8. OpenWysiwyg

Demo | Download

ادیتوری با قابلیتهای فراوان و زیاد اما متاسفانه هنوز با گوگل کرئم سازگار نشده است

۹٫ Spaw Editor

Demo | Download

اگر با جداول زیاد سر وکار دارید این ایدتور بهترین انتخاب برای شما میباشد. همچنین قابلیت استفاده برای زبانهای برنامه نویسی PHP و asp.net

10. jHtmlArea

Demo | Download

باز هم پلاگین دیگری که توسط کتابخانه جی کوئری توسعه یافته است، بسیار سبک و با قابلیت خصوصی سازی بسیار بالا

روایتی نو از ” پرتال ساز ایران نیوک “

شنبه, ۲۹ اسفند ۱۳۸۸

پرتال نیوک لرن نرم افزاری است که شما می توانید پس از دانلود , آن را به هاست ( فضای سایت ) خود منتقل کنید و مراحل نصب آن را طی کنید .

برای یادگیری نصب پرتال نیوک لرن به این بخش مراجعه کنید :

http://www.nukelearn.com/article108.html

ولی اگر می خواهید بدانید چرا باید از پرتال نیوک لرن برای ایحاد سایت استفاده کنید :

پرتال نیوک لرن بر پایه پرتالی قدیمی و معروف در ایران توسعه داده شده است . این پرتال ادامه پرتالی به نام ایران نیوک است که زمانی در ایران مشهورترین پرتال به شمار می رفت . توسعه ی این پرتال در ۵ سال احیر موجب شده که پرتال ما به سطح پایداری و کاربردی مطلوب خود برسد .

در نسخه اول نیوک لرن ما شاهد صدها تغییر هستیم که این می تواند بسیار به کیفیت آن بیافزاید .

اولین نسخه و انتشار آن :

نسخه ۱٫۰٫۰٫۰ پرتال نیوک لرن در حالی منتشر شده است که ۸ مرحله توسعه آلفا که فقط در اختیار توسعه دهندگان ( حامد مومتی – امیرحسین نیکوکار – اوریا بوستانی – مهدی خادم معارف – فرشاد غضنفری ) بوده است و در ۸ مرحله توسعه و تست بتا با توسعه دهندگان ( حامد مومنی – فرشاد غضنفری ) و تمام دوستان داوطلب طی شده است . و این یعنی ۱۶ مرحله تست و توسعه امکانات .

از مهمترین امکانات صورت گرفته در اخرین نسخه :


- موتور اختصاصی قالب های پرتال نیوک لرن و سیستم کش
- مدیریت کاملا مستقل و همراه با فناوری آجاکس
- کار بر روی امنیت پرتال
- انجمن های phpbb3
- تولید محتوا به صورت PDF فارسی
- فریم ورک جی کوئری و پلاگین های آن
- ذخیره خودکار در هنگام نوشتن مطلب
- کد امنیتی به صورت سوالی و تصویری
- سیستم تگ گذاری بر روی مطالب و …
- بخش کاربری جدید ماژول دانلودی ها
- ویرایشگر ckeditor 3.2
- مدیریت کاملا آجاکسی وپیشرفته مدیریت تحریریه
- و ده ها امکان بزرگ دیگر و صدها تغییر و تحول کوچک لیست کامل امکانات و تغییرات این نسخه را می توانید در لینک زیر بخوانید

http://www.nukelearn.com/wiki/index.php/Usv_features

دانلود پرتال نیوک لرن نسخه ۱٫۰٫۰٫۰

http://nukelearn.com/downloads-53.html

این نسخه تنها برای کسانی است که می خواهند از ابتدا نصب و استفاده کنند

سی ام اس تاک برای این تیم و این سیستم پرتال ساز قوی فارسی آرزوی موفقیت روز افزون دارد

آموزش جی کوئری در پانزده روز : روز نهم

پنجشنبه, ۲۰ اسفند ۱۳۸۸

سلام, امیدوارم پست قبلی که ” ۲۰ افکت جی کوئری برای متن ” بود رو دیده باشید چون طبق قولی که در اون پست داده بودم قصد دارم یکی از رایج ترین افکت هایی که در صفحات وب میبینید یعنی بزرگتر و کوچکتر کردن اندازۀ فونت رو بهتون آموزش بدم. فقط خدمتتون عرض کنم که این پست بیشتر از پستهای دیگه می طلبه که جاوا اسکریپت بلد باشین. با اینکه اینجا قراره آموزش جی کوئری داده باشه من تمام تلاشم رو کردم که ساده و مختصراندکی از کدهای جاوا اسکریپت رو هم توضیح بدم. امیدوارم که لذت ببرید.

خب ابتدا متنی تهیه می کنیم و بالای آن یک لینک با آی دی Larger و یک لینک دیگر با آی دی Smaller می سازیم :

<body>
        <a href="#" id="larger">بزرگتر</a>
        <br/>
        <a href="#" id="smaller">کوچکتر</a>
        <p>متن</p>
    </body>

سپس متنی تهیه می کنیم که روی آن تست کنیم. من پانزده جمله که حاصل عمر گابریل گارسیا مارکز بود انتخاب کردم. حالا سراغ اصل ماجرا که کد های جی کوئری هست میریم. طبق معمول ابتدا کل کد رو می نویسم سپس تک تک توضیح می دم :

$(function() {
	$('a').click(function() {
		var os = $('p').css('font-size');
		var num = parseFloat(os);
	      var uom = os.slice(-2);

		if(this.id == 'larger') {
			$('p').css('font-size', num * 1.4 + uom);
		} else
		      $('p').css('font-size', num / 1.4 + uom);
	})
})

دیگه حتماً بعد از ۸ جلسه با کد function و click آشنا هستید… پس میریم سراغ

		var os = $('p').css('font-size');

var مخفف کلمۀ variable به معنی متغیر هست. Os هم مخفف کلمۀ orginal size هست. در این کد ما فقط قصد داریم که متغیر سایز رو برای پاراگراف یا همون p تعریف کنیم. دقت کنید که ما می تونستیم همینجا سایز پیش فرض رو تعیین کنیم روی مثلاً ۳۰ پیکسل :

var os = $('p').css('font-size' , ‘۳۰px’);

خب سراغ کد بعد میریم :

var num = parseFloat(os);

کسانی که جاوا اسکریپت بلد هستند معنی این کد رو خیلی خوب متوجه میشن. ببینید کار کد parseFloat در اینجا اینه که مقدار اولیه اندازۀ فونت رو میگیره. اینجا os یا سایز اصلی رو میگیره. نوشتن این کد ضروریه چون نیاز داریم تا در کد های بعدی به سایز اصلی کدمون اضافه بشه و باید سایز اصلی با این کد استخراج بشه.

var uom = os.slice(-2);

خب با این کدقصد داریم تا واحد اندازه گیریمون رو مشخص کنیم. Uom مخفف unit of measure هست. Slice هم یک دستور جاوا اسکریپت هست که کلمات یا استرینگ ها رو تفکیک می کنه. ببینید اینجا چون px یا em که واحد های مد نظر ما هستند ۲ حرفی هستند ما از -۲ اسفاده کردیم. یعنی فقط px یاem رو بگیر. برای کسانی که جاوا اسکریپت بلد نیستند و می خوان فعلاً این کد رو بهتر بفهمن پیشنهاد می کنم مثال های اینجا رو ببین.

پس تا حالا با num مقدار فونت و با nom واحد فونت رو مشخص کردیم. حالا میریم سراغ بزرگتر کردن فونت ! ببینید اگر قرار بود فقط قابلیت بزرگتر کردن فونت وجود داشته باشه می تونستیم از کد زیر استفاده کنیم :

$(function() {
	$('a#larger').click(function() {
		var os = $('p').css('font-size');
		var num = parseFloat(os);
	      var uom = os.slice(-2);
		$('p').css('font-size', num * 1.4 + uom);
	})
})

کد بالا به این معنی هست که اگر روی لینک با آی دی larger کلیک کردیم ( با توجه به تعریف num وnom ) ، سایز فونت p رو ضربدر ۱٫۴ کن و واحدش هم بذار کنارش !کافیه این کد رو جایگزین کد فایل های سورسی که دانلود کردید بذارید و نتیجه رو ببینید. می تونید به جای ۱٫۴ از ۲ استفاده کنید. اونوقت با هر کلیک فونت شما ۲ برابر خواهد شد.

شما می تونید دقیقاً یک کد دیگه برای کوچکتر کردن فونت مثل کد بالا بنویسید فقط باید به جای * از / استفاده کنید. یعنی با هر بار کلیک اندازۀ فونت رو تقسیم بر ۱٫۴ کند ! به صورت زیر :


$(function() {
	$('a#smaller').click(function() {
		var os = $('p').css('font-size');
		var num = parseFloat(os);
	      var uom = os.slice(-2);
		$('p').css('font-size', num / 1.4 + uom);
	})
})

ولی ما نمی خوایم ۲ تا کد مثل هم داشته باشیم . می خوایم ببینیم میشه دو تا کد بالا رو با هم تلفیق کرد یا نه. خب سراغ کد اصلی میریم. دوباره می نویسمش :

$(function() {
	$('a').click(function() {
		var os = $('p').css('font-size');
		var num = parseFloat(os);
	      var uom = os.slice(-2);

		if(this.id == 'larger') {
			$('p').css('font-size', num * 1.4 + uom);
		} else
		      $('p').css('font-size', num / 1.4 + uom);
	})
})

ببینید ما می خوایم وقتی روی a با آی دی larger کلیک کردیم فونت بزرگ بشه و در غیر این صورت کوچیک بشه. پس درستش اینه که از یک if و else استفاده کنیم. در کد بالا بعد از if از this.id استفاده کردیم که this اینجا همون a است. یعنی اگر a#larger بود فونت رو ضربدر ۱٫۴ کن و اگر اینطور نبود فونت رو تقسیم بر ۱٫۴ کن !

قسمت اضافی : حالا که فقط دو تا لینک توی صفحه داریم می تونیم باز هم کد رو کوچکتر کنیم :

$(function() {
	$('a').click(function() {
		var os = $('p').css('font-size');
		var num = parseFloat(os);
	      var uom = os.slice(-2);

		$('p').css('font-size', num / 1.4 + uom);
		if(this.id == 'larger') {
			$('p').css('font-size', num * 1.4 + uom);
		}
	})
})

یعنی هر لینکی تو صفحه بود فونت رو چیک کن ولی اگر آی دیش larger بود بزرگش کن ! و چون فقط یک لینک smaller به غیر از larger در صفحا موجود هست پس کد درست کار می کنه.

نمی دونید آموزش از طریق متن و غیر حضوری چقدر برای کسی که می خواد یاد بده و کسی که می خواد یاد بگیره دشواره … واقعاً دوست داشتم برای هر درس فقط یک پادکست تهیه می کردم که توی زمان کمتری توضیح بیشتری هم بدم ولی با سرعت اینترنتی که داریم ممکنه دیدن ویدئو یا دانلود اون برای مخاصب کمی دشوار باشه. به هر حال اگر هدف یادگیریه ممکنه با دوباره خوندن مطلب و کار با سورس فایلهای و مطرح کردن سئوال در کامنتها کارتون آسونتر بشه.

پستهای مرتبط :

آموزش جی کوئری در پانزده روز : روز هشتم

آموزش جی کوئری در پانزده روز : روز هفتم

آموزش جی کوئری در پانزده روز : روز ششم

آموزش جی کوئری در پانزده روز : روز پنجم

آموزش جی کوئری در پانزده روز : روز چهارم

آموزش جی کوئری در پانزده روز : روز سوم

آموزش جی کوئری در پانزده روز : روز دوم

آموزش جی کوئری در پانزده روز : روز اول

مقدمه ای بر آموزش jQuery در ۱۵ روز

۲۰ افکت جی کوئری برای متن

چهارشنبه, ۵ اسفند ۱۳۸۸

امروز به عنوان استراحت بین آموزش هامون براتون ۲۰ نمونه از افکتهای جی کوئری روی متن رو آماده و جمع آوری کردم که مطمئنم خوشتون میاد چون هم ساده هستند هم کاربردی. البته در هفت روزی که تا پایان سری پانزده روزۀ آموزش جی کوئری داریم چند تا از همین افکت ها رو توضیح خواهم داد ولی شما اگر در استفاده از هر کدوم از این افکتها به مشکل برخوردید در قسمت نظرات بپرسید. دوستان دقت کنید تمام افکتها نمایش ( دمو ) دارند فقط ممکن است در لینک به اسم Demonstration یا See in action یا Example نام گذاری باشد. امیدوارم لذت ببرید.

۱٫ با استفاده از این افکت می توانید به متن خود outline , shadow gradient و mirror اضافه کنید.

۲٫ این افکت به کل متن یا پاراگراف شما خاصیت gradient می دهد.

۳٫ عکس کاملاً گویاست. این افکت باعث میشود متن شما بیرون یا درون صفحه نشان داده شود.

۴٫ حتماً می دونید که قابلیت shadow در css3 بوجود اومد و بعضی از مرورگرها مثل IE که از اون حمایت نمی کنن قابلیت نشان دادن متن با shadow نیستند. ولی این افکت به شما کمک خواهد کرد تا با IE هم بتوانید برای متن shadow ایجاد کنید.

۵٫ این افکت واقعاً کاربردی و زیباست. با این پلاگین می توانید کاری کنید که متنی که به هم ریخته است به صورت زیبایی خوانا شود یا حتی از نو نوشته شود.

۶٫ خیلی جالب میشه اگر با حرکت موس متن شما تغییر رنگ یا تغییر اندازه بده و حتی با هم این کار رو انجام بده…

۷٫ حتماً دوست دارید هنگام لود شدن کامل صفحه متنی شروع به نوشته شدن بکنه …

۸٫ این هم نوعی از افکت بالاست که می تونه متن رو کلمه به کلمه بنویسه یا نوشتن چند پاراگراف رو با هم شروع بکنه.

۹٫ اگر شک دارید که روزی جی کوئری جای فلش رو خواهد گرفت این افکت رو ببینید… حتماً روی حروف کلیک کنید و به این فکر کنید که می تونید جای حروف از اسم خودتون یا لینک بخش های مختلف سایتتون استفاده کنید …

۱۰٫ من شدیداً به این افکت علاقه دارم. ساده . زیبا و کاربردی … سایتی نیست که نشه این افکت رو توش استفاده کرد.

۱۱٫ این هم انواع shadow و gradient روی متن.

۱۲٫ خوبه که مخاطب بتونه انتخاب کنه که متن رو با چه رنگی و به خصوص با چه gradient ببینه

۱۳٫ یا هر چیز که می نویسن به صورت gradient همونجا نشون داده بشه …

۱۴٫ حتماً با خاصیت hover در css آشنا هستید. حالا فکر کنید وقتی موس رو روی لینکی میبرید رنگ لینک به مرور از رنگی که هست به رنگ دلخواهتون تبدیل بشه ! عالی نیست ؟

۱۵٫ حالا تصور کنید که خاصیت بالا برای بک گراند متن هم انجام شود. یا با هر بار حرکت موس روی لینک ، لینک به رنگ جدیدی در بیاید !

۱۶٫ رنگ نوشته و کلاً هر تگ و المان HTML که دوست دارید به صورت پیوسته عوض کنید. واقعاً افکت جالبیه با اینکه یه مقدار سرعت تعویض رنگ برای دمو زیاد هست ولی می تونه خیلی کاربردی باشه.

۱۷٫ حتماً دیدید که چند سالیه بین متن ریز روزنامه ها تکه ای میان متن با فونت بزرگ مهمترین قسمت مطلب نوشته شده. شما می تونید با نقل قول ها هم این کار را با قرار دادن کدی ساده بکنید…

۱۸٫ از عکس پیداست … با نصب پلاگین این اتفاق در وبلاگ یا سایت شما هم خواهد افتاد.

۱۹٫ هر چه تعداد کلمات شما در پاراگراف بیشتر باشد فونت به صورت خودکار کوچکتر می شود و بالعکس.

۲۰٫ انواع سیستم زوم برای متن را دیدید، در cms جوملا اغلب پوسته ها ایم امکان رو دارند ولی این زوم از جنس دیگریست.

پستهای مرتبط :

نحوه ساخت پس زمینه متحرک وب سایت توسط jQuery

آموزش جی کوئری در پانزده روز : روز هشتم

آموزش جی کوئری در پانزده روز : روز هفتم

آموزش جی کوئری در پانزده روز : روز ششم

آموزش جی کوئری در پانزده روز : روز پنجم

آموزش جی کوئری در پانزده روز : روز چهارم

آموزش جی کوئری در پانزده روز : روز سوم

آموزش جی کوئری در پانزده روز : روز دوم

آموزش جی کوئری در پانزده روز : روز اول

مقدمه ای بر آموزش jQuery در ۱۵ روز

آموزش جی کوئری در پانزده روز : روز هشتم

پنجشنبه, ۲۹ بهمن ۱۳۸۸

افکتی که امروز یاد خواهیم گرفت بسیار کاربردی و مورد استفاده است. در بسیاری از سایت ها دیدید که هنگام حرکت موس عکسی کنار می رود و نوشته یا عکس زیر آن نمایان می شود. البته من در آموزش امروز ازطرح های قدیمیه خودم استفاده کردم تا روز ولنتاین یا به عبارت درست والنتین رو با جی کوئری ترکیب کنم ! و به این نحو روز عشاق رو به همۀ عاشقان ITT تبریک بگم.

کاری که قرار است انجام بدیم به این صورت است که دو عکس رو دقیقاً روی هم قرار می دهیم و با استفاده از جی کوئری کاری می کنیم که عکسی که رو قرار دادیم به طرف راست حرکت کند. البته معمولاً در سایتها عکس به سمت پایین حرکت می کند که به آن هم به صورت زیر انجام می شود. برای این کار ابتدا عکس ها رو مطابق کد زیر بین تگی با class به نام wrap قرار می دهیم.

<body>
    <div class="wrap">
        <img src="01.jpg" alt="image" />
        <img src="02.png" class="front" alt="image" />
     </div>
</body>

خب میبینید که فقط برای عکسی که رو قرار دارد class تعریف کردم چون با عکس زیری اصلاً کاری نداریم. حالا باید سراغ css و ویرایش ظاهری عکس ها بریم که در این آموزش خیلی مهم هست.

<style type="text/css">

body {
	background-color:#000;
}

.wrap {
	width: 340px;
	height: 610px;
	position: relative;
	overflow: hidden;
	float: right;
}

img {
position: absolute;
top: 0;
left: 0;
}
</style>

ابتدا رنگ صفحه رو مشکی کردیم. برای wrap اندازۀ طول و عرض عکسمون رو مشخص می کنیم و position رو به حالت relative قرار می دیم تا بتونیم عکس رو با استفاده از float در گوشۀ راست صفحه قرار بدیم. مهمترین بخش overflow هست. این خاصیت برای اتفاقات و ظواهریست که بیرون از کادری که تعریف کردیم اتفاق می افتد. مثلاً الان که من مقدار hidden رو تعریف کردم یعنی اگر عکس از طول ۳۴۰px و ارتفاع ۶۱۰px خارج شد آن را نشان نده ! برای img هم position رو به صورت absolute قرار دادم تا عکس ها دقیقاً روی هم بیافتند.
دقت کنید اگر مقادیر position و overflow رو پاک کنید خواهید دید که عکس ها به چه حالتی در خواهند آمد. پیشنهاد می کنم حتماً با پاک کردن و اضافه کردن مقادیر مختلف و دیدن نتیجه درک خودتون رو از المان های سازندۀ صفحات وب بیشتر کنید برای سهولت این کار حتماً پیشنهاد سر آشپز ، آخر همین آموزش رو مطالعه کنید.
الان ما دو عکس داریم که روی هم قرار گرفته اند و باید سراغ کد جی کوئری بریم تا با حرکت موس عکس رویی رو به مقدار ۳۴۰px به طرف راست حرکت بدیم. من ابتدا کد رو می نویسم سپس به تفکیک توضیح میدم :

<script type="text/javascript">
    $(function() {
        $('.wrap').hover(function() {
            $(this).children('.front').stop().animate({ "left" : '340px'}, 1000);
        }, function() {
            $(this).children('.front').stop().animate({ "left" : '0'}, 800);
        });
    });
</script>

توضیح کد :
* hover : وقتی صحبت از حرکت موس روی عکس میشه از خاصیت hover استفاده می کنیم و چون حرکت عکس روی wrap مد نظرمون هست کد را به صورت بالا شروع می کنیم.
* this : در آموزش های گذشته توضیح دادیم و حتماً می دانید که اینجا برای صدا زدن .wrap از آن استفاده کردیم.
* children : در جی کوئری این کد به معنای پیدا کردن هست. حتی شما می تونید به جای children از find هم استفاده کنید یعنی شما می خواهیم تگی که class با نام front دارد پیدا کنید و بقیۀ کد ها رو برای اون انجام بدید. ( کد children و find تفاوت کوچیکی داره که در آموزش های بعدی توضیح خواهم داد. )
* stop : کافیه شما stop رو پاک کنید و ببینید چه بلایی سر افکت میاد ! با این حال توضیحش خالی از لطف نیست. با بکار بردن stop می گوییم عکسی که در حال حرکت است در هر جایی که هست باستد و دستورات بعدی انجام شود. اگر از Stop استفاده نکنیم و موس رو با سرعت چندین بار روی عکس ببریم خواهیم دید که عکس مدام رفت و آمد می کند و تمام حرکات را تا انتها انجام میدهد. ( در آموزش جلسۀ هفتم از stop استفاده نکردیم، می توانید برای مثال نمایش روز هفتم را ببینید )
* animate : چون قرار است عکس حرکت کند از animate استفاده می کنیم که قبلاً آشنا شدید. فقط دقت کنید که ما قصد داریم عکس رو به راست بفرستیم پس می گوییم از left به اندازۀ ۳۴۰ پیکسل به راست برو ! این اشتباه رایجیه که خودم زیاد تکرار می کنم و به اشتباه right می نوسم اکثراً. و در نهایت سرعت رفتن عکس رو ۱ ثانیه یا ۱۰۰۰ میلی ثانیه و سرعت برگشت عکس رو ۰٫۸ ثانیه تنظیم کردم.
* اگر آموزش روز هفتم رو متوجه شده باشید قسمت دوم که برگشت عکس هست احتیاج به توضیح ندارد فقط باید دقت کنید که برای left از منفی ۳۰۰ استفاده نکنید و عکس باید به جای اول خودش یعنی ۰ بازگردد.

پیشنهاد سر آشپز :
فکر می کنم تعداد زیادی از کسانیکه به ITT سر می زنند از فایرفاکس عزیز استفاده می کنند در این صورت معرفی افزونه یا پلاگین Firebug خالی از لطف نیست. برای کسانیکه احتمالاً تا کنون کار با این افزونه رو تجربه نکردن میگم که با استفاده از یکی از ویژگی های این افزونه به صورت آنی می تونید مقادیر css و تگ ها رو عوض کنید و نتیجه رو همون لحظه ببینید. این کار خیلی به یادگیری من کمک کرد. اصلاً نگران پیچیدگی این افزونه هم نباشید چون کار با اون بسیار راحته. این افزونه رو از اینجا روی فایرفاکس نصب کنید و همین الان تغییرات رو روی نمایش آموزش امروز شروع کنید.

پستهای مرتبط :

آموزش جی کوئری در پانزده روز : روز هفتم

آموزش جی کوئری در پانزده روز : روز ششم

آموزش جی کوئری در پانزده روز : روز پنجم

آموزش جی کوئری در پانزده روز : روز چهارم

آموزش جی کوئری در پانزده روز : روز سوم

آموزش جی کوئری در پانزده روز : روز دوم

آموزش جی کوئری در پانزده روز : روز اول

مقدمه ای بر آموزش jQuery در ۱۵ روز

آموزش جی کوئری در پانزده روز : روز هفتم

چهارشنبه, ۲۱ بهمن ۱۳۸۸

سلام، امیدوارم تا کنون که نیمی از جلسات آموزشی رو پشت سر گذاشتیم از مطالب استفاده کرده باشید و به دردتون خورده باشه. خب آموزش امروز رو دوست دارم چون با عکس و انیمشن سرو کله خواهیم زد.

امروز چه کار خواهیم کرد ؟

  1. شفافیت کامل عکس توسط جی کوئری هنگام حرکت موس روی عکس
  2. رنگی کردن عکس توسط جی کوئری هنگام حرکت موس روی عکس

شفافیت کامل عکس توسط جی کوئری هنگام حرکت موس روی عکس :
خب شفافیت کامل عکس از حالت نیمه جان ! کار آسونیه و یاد گرفتنش صرفاً برای قسمت بعدی این آموزش است. خب ابتدا می گردیم دوتا عکس زیبا پیدا می کنیم. برای این کار هزار تا سایت هست ولی سایت مورد علاقۀ من ۱x هست که خودم رو موظف کردم هر روز یه گشتی بین عکساش بزنم. بعد از انتخاب عکس ها بک گراند رو مشکی می کنم. این کار کاملاً سلیقه ایه و اگر سفید یا هر رنگ دیگه ای باشه مشکلی برای آموزش امروز ما پیش نمیاد. امروز هم تمام اسکریپت ها و استایل ها رو در فایل ایندکس خواهم نوشت.

<style>

body
{
	background: black;
	font-size: 12px;
	color: #FFF;
}
#opacity {
	margin-top: 300px;
}
</style>

بعد از مشکی کردن رنگ زمینه و سفید کردن فونت بین تگ body یک تگ Div با Id درست می کنیم. تا عکسی که قرار است fade out یا ظاهر شود رو قرار بدیم.

<div id="opacity">
<p> شفافیت کامل عکس هنگام حرکت موس روی عکس </p>
<img src="b.jpg"/>
</div>

خب ابتدا باید عکس محو باشد که با حرکت موس به حالت اول برگردد پس سراغ کد جی کوئری می رویم :

$(function() {
		$('#opacity img').animate({"opacity": .2 });
});

این کد به این معنیست که روی تگ Img که درون div با Id=opacity عملیاتی انجام بده. ( انیمیشن ) و شفافیت رو بکن ۰٫۲ به همین سادگی. این برای ابتدای کار.
بعد از اون باید کدی بنویسیم که با حرکت موس روی عکس شفافیت به حالت عادی که ۱ است برگردد پس کد بالا را تکمیل می کنیم :

$(function() {
		$('#opacity img').animate({"opacity": .2 });
$('#opacity img').hover(function() {
$(this).stop().animate({ "opacity": 1 });
					}
		});

به این معنی که هنگامیکه موس روی img آمد شفافیت را به ۱ برسان. خب این کافی نیست چون در این حالت اگر موس رو از روی عکس برداریم به حالت نیم جان که ۰٫۲ است برنمی گردد و همینطور شفاف می ماند. پس کد را تکمیل می کنیم :

$(function() {
		$('#opacity img').animate({"opacity": .2 });
$('#opacity img').hover(function() {
$(this).stop().animate({ "opacity": 1 });

, function() {
						(this).stop().animate({ "opacity": .2 );}
});

یعنی دوباره کد را به حالت اول بر می گردونیم و شفافیت به ۰٫۲ میرسد. به همین سادگی.

رنگی کردن عکس توسط جی کوئری هنگام حرکت موس روی عکس :
خب بین تگ body یک تگ Div با Id درست می کنیم. تا عکسی که قرار است از سیاه و سفید به حالت رنگی در بیاد رو بین اون قرار بدیم.

<body>
<div id="fadehover">

      	</div>
</body>

برای این تکنیک ما احتیاج داریم که عکس رو هم به صورت رنگی هم به صورت سیاه و سفید داشته باشیم. من تا کنون هیچ کدی ندیدم که بتونه به صورت اتوماتیک عکس رو به حالت سیاه و سفید در بیاره. پس شیوۀ کار به این صورت است که من دو عکس رو دقیقاً روی هم طوری قرار می دم که عکس سیاه سفید روی عکس زنگی باشه و با تکنیک جی کوئری کاری می کنم که با حرکت موس روی عکس ها ، عکس سیاه سفید محو بشه. به این صورت شما نا خوداگاه عکس رنگی که زیر عکس سیاه و سفید هست رو میبینید.

<div id="fadehover">
<p> رنگی کردن عکس هنگام حرکت موس روی عکس </p>
<img src="a-bw.jpg" class="a-bw" />
<img src="a.jpg" class="a" />
      	</div>

خب ابتدا عکس a هم به صورت سیاه و سفید هم رنگی به صفحه اضافه می کنیم. دقت کنید برای هر عکس از کلاس با نام های مختلف استفاده کردم. برای عکس رنگی کلاسی به نام a و برای عکس سیاه و سفید کلاسی به نام a-bw . حالا وقت اینه که دو عکس رو دقیقاً روی هم بندازیم به این صورت :

img.a  {
	position: absolute;
	left: 5px;
	top: 40px;
 }

  img.a-bw  {
	position: absolute;
	z-index: 10;
	left: 5px;
	top: 40px;
 }

من برای هر دو عکس پوزیشنی ثابت در فاصلۀ ۵ پیکسل از کنار چپ و ۴۰ پیکسل از بالای صفحه انتخاب کردم و برای اینکه عکس سیاه و سفید رو باشد اون رو در بعد z مختصات ۱۰ مرحله جلو آوردم. ببنید برای این کار می تونید عکس رنگی رو ۱۰ مرحله عقب بفرستید و هیچ فرقی نمی کنه به این صورت :

img.a  {
	position: absolute;
	left: 5px;
	top: 40px;
	z-index: -10;

 }

  img.a-bw  {
	position: absolute;
	left: 5px;
	top: 40px;
 }

خب اگر الان صفحه رو ریفرش کنید فقط عکس سیاه و سفید رو میبینید. برای اینکه با حرکت موس عکس سیاه و سفید کاملاً محو بشه از کد جی کوئری استفاده می کنیم :

//Black and White To Colorful
$("img.a-bw").hover(
function() {
$(this).animate({ "opacity": "0" }, "slow");},
function() {
$(this).animate({ "opacity": "1" }, "slow");}
);

این کد دقیقاً مثل کد مرحلۀ پیش است با این تفاوت که به جای ۰٫۲ شفافیت رو به ۰ می رسونیم که کاملاً محو شود.

خب این طولانی ترین آموزش بود. قصد داشتم این دو تکنیک رو در دو جلسه آموزش بدم ولی مطمئنم که شما با کمی سرو کله زدن با توجه به این که کد هارو در اختیارتون قرار می دم متوجه تکنیک ها خواهید شد. خواهش می کنم اگر سئوال یا مشکلی دارید که به این آموزش مربوط هست بپرسید تا با کمال میل جواب بدم.

پستهای مرتبط :

آموزش جی کوئری در پانزده روز : روز ششم

آموزش جی کوئری در پانزده روز : روز پنجم

آموزش جی کوئری در پانزده روز : روز چهارم

آموزش جی کوئری در پانزده روز : روز سوم

آموزش جی کوئری در پانزده روز : روز دوم

آموزش جی کوئری در پانزده روز : روز اول

مقدمه ای بر آموزش jQuery در ۱۵ روز

آموزش جی کوئری در پانزده روز : روز ششم

چهارشنبه, ۱۴ بهمن ۱۳۸۸

سلام، در آموزش امروز قصد داریم پر کاربردترین مبحث جی کوئری که به Toggle معروف هست رو یاد بگیریم. Toggle در واقع کدیست که به کمک اون می تونیم یک عمل رو پی در پی انجام بدیم. به یقین این آموزش کاملترین آموزش toggle در وب فارسی هست چون سعی کردم تمام حالات toggle رو آموزش بدم و خیلی برای آموزش امروز زمان گذاشتم چون واقعاً کاربردیه و در افکتهایی که در آینده خواهم گفت کاربرد بسیار زیادی داره.

امروز چه کار خواهیم کرد :

۱٫ محو و نمایان کردن مربع به صورت آنی

۲٫ محو و نمایان کردن مربع در بازۀ زمانی

۳٫ محو و نمایان کردن مربع به صورت کشویی

۴٫ محو و نمایان کردن مربع به صورت fade in  و fade out

5. محو و نمایان کردن یک Class

محو و نمایان کردن مربع به صورت آنی :
امروز هم چون کدهای CSS و jQuery کم هستند اون هارو درون فایل index می نویسیم. و برای هر مرحله از لینک جدا استفاده می کنیم. ابتدا مربع ۳۲۰ پیکسلی معروفمون رو به رنگ مشکی می سازیم.

<style type="text/css">
#box
{
	width: 320px;
	height: 320px;
	background: black;
}
</style>
<body>
<div id="box"></div>
</body>

و لینک اول را با کلاسی به نام Toggle1 درست می کنیم تا با کلیک کردن روی اون بتونیم دستور بدیم که عمل محو و نمایان کردن آنی مربع است انجام بشه

<a class="toggle1" href="#">Toggle - Simple</a>

خب از ساده ترین کد شروع می کنیم یعنی خود دستور toggle . کافیه کد زیر رو بنویسید و وقتی روی لینک کلیک می کنید مربع به صورت آنی محو و با کلیک دوباره همان لحضه نمایان می شود. دوستان پرسیده بودن که چطور می تونیم یک لینک خاص رو به افکت خاصی اختصاص بدیم. همونطور که میبینید ما برای لینکمون یک کلاس تعریف کردیم به نام toggle1 و در کد زیر هم میبینید به چه صورت دستور کلیک را نوشتیم : a.toggle1

    $(function() {
        $('a.toggle1').click(function() {
            $('#box').toggle();
        });
    });

محو و نمایان کردن مربع در بازۀ زمانی :
خب به نظر من اصلاً جالب نیست که مربع ما یک لحظه باشه و یک لحظه نباشه ! ما به راحتی می تونیم به این رفت و آمد افکت اضافه کنیم. کافیه در کد بالا درون پرانتزی که جلوی کد toggle هست یک زمان به میلی ثانیه اضافه کنیم مثلاً ۴ ثانیه برای محو و نمایان شدن :

    $(function() {
        $('a.toggle2').click(function() {
            $('#box').toggle(4000);
        });
    });

و البته لینکی با کلاسی به نام toggle2 که با کلیک روی آن عملیات انجام شود.. به صورت زیر :

<a class="toggle2" href="#">Toggle - In 4 Second</a>

در این صورت مربع ما به حالت پیش فرض toggle که محوشدن آهسته + کوچک شدن عرض و ارتفاع است در مدت ۴ ثانیه محو می شود و چون از toggle استفاده کردیم با کلیک دوباره روی لینک به همین صورت نمایان خواهد شد.

محو و نمایان کردن مربع به صورت کشویی :
خب درسته که کد زیر به صورت مکرر انجام میشه ولی در اون از toggle استفاده نمی کنیم ! در واقع می شود گفت کد زیر زبانی ساده از مفهوم toggle است. بهتر است این کد را اینطور بخونیم که :
اگر #box بسته بود اون رو در زمان ۴ ثانیه باز کن در غیر این صورت اون رو در زمان ۴ ثانیه ببنید !

$('a.toggle3').click(function() {
      if ($('#box').is(":hidden")) {
          $('#box').slideDown(4000);
    } else {
          $('#box').slideUp(4000);
            }
});

برای اجرای این دستور هم از لینک با کلاسی به نام toggle3 استفاده می کنیم :

<a class="toggle3" href="#">Toggle - slide up and slide down</a>

محو و نمایان کردن مربع به صورتfade in و fade out :
خب این قسمت یکمی مفهومش ممکنه سخت به نظر بیاد و توضیح کد siblings به تنهایی یک جلسه زمان می بره ولی مختصر می گم که این کد برای پیدا کردن عنصر خاصی است بین عناصر تکراری دیگر. برای درک مفهوم این کد پیشنهاد می کنم اینجا رو بخونید و مثال ها رو ببینید تا کاملاً متوجه مورد استفادۀ این بشوید.

$('a.toggle4').toggle(function() {
$('a.toggle4').siblings('#box').fadeIn(4000);
}, function() {
$('a.toggle4').siblings('#box').fadeOut(4000);
});

و لینک چهارم که به این صورت می نویسیم :

<a class="toggle4" href="#">Toggle - fade in and fade out</a>

* اگر معنی کد بالا رو متوجه نشدید نگران نباشید در آینده به تفصیل توضیح خواهم داد. این کد رو کاملاً از خودم ساختم چون در demo ها برای fade in و fade out به صورت toggle چیزی پیدا نکردم !

محو و نمایان کردن یک Class :
ما می تونیم هر Class جدیدی رو بسازیم و با toggle محو و نمایان کنیم. برای مثال من یک class میسازم و به وسیلۀ اون یک کادر به عکس اضافه می کنم. اسم class رو border می زارم و یک خط ۵ پیکسلی برای مربع تعریف می کنم :

.border
{
	border: 5px solid red;
}

و لینک جدیدی برای این کار می سازم با کلاسی به نام toggle5 :

<a class="toggle5" href="#">Toggle - add and remove Class</a>

و میریم سراغ اصل مطلب که کد جی کوئری هست :

<script type="text/javascript">

        $('a.toggle5').click(function() {
            $('#box').toggleClass('border');

        });
</script>

تنها فرقی که در این کد میبینید toggleclass هست که کاملاً از اسمش پیداست چه کاری انجام میده ! کافیه بعد از این کد آرایه ای که در قسمت CSS تعریف کردید رو بنویسید تا با کلیک بر روی لینک به صورت پی در پی افکت انجام شود. همین.
سعی کردم این جلسه خیلی کامل باشه. امیدوارم به دردتون بخوره… جلسۀ آینده نحوۀ تار کردن و شفاف کردن عکس رو توسط جی کوئری یاد خواهیم گرفت…

پستهای مرتبط :

آموزش جی کوئری در پانزده روز : روز پنجم

آموزش جی کوئری در پانزده روز : روز چهارم

آموزش جی کوئری در پانزده روز : روز سوم

آموزش جی کوئری در پانزده روز : روز دوم

آموزش جی کوئری در پانزده روز : روز اول

مقدمه ای بر آموزش jQuery در ۱۵ روز

آموزش جی کوئری در پانزده روز : روز پنجم

چهارشنبه, ۷ بهمن ۱۳۸۸

سلام. اجازه بدید همین ابتدای کار بگم که آموزش امروز برای کسانیکه با الگوریتم های برنامه نویسی آشنا نیستند ممکنه کمی دشوار باشه ولی خیالتون راحت باشه چون تک تک کد هارو توضیح می دم و بد نیست که شما هم کمی ذهنتون رو درگیر برنامه نویسی کنید و ببینید چقدر در شکوفایی و خلاقیت ذهنتون تأثیر داره. البته اینم بگم که امروز درگیر یکی از آسونترین الگوریتم های برنامه نویسی هستیم به نام لوپ و قضیه زیاد هم پیچیده نیست. فرض کنید ویزیتورهای وبلاگتون با زدن یک علامت + در پایین آخرین پست صفحۀ اصلی بتونن پست قبل تر رو ببینن …

امروز چه کار خواهیم کرد :

  1. اضافه کردن آیتم به انتهای لیست به ترتیب شماره
  2. کم کردن آیتم از انتهای لیست

اضافه کردن آیتم به انتهای لیست به ترتیب شماره :
خب ابتدا باید یه لیست تهیه کنیم. پس بعد از لینک کردن فریم ورک جی کوئری ( در چهار جلسۀ گذشته توضیح داده شد ) لیستی سه تایی به ترتیب اعداد می سازیم :

<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>

حالا باید دو لینک برای اضافه کردن و کم کردن آیتم ها ایجاد کنیم :

<a href="#" id="add">Add</a>
<br />
<a href="#" id="remove">Remove</a>

آدرس لینک ها اصلاً مهم نیست. فقط id اونا مهمه که ما به ترتیب add و remove گذاشتیم. دقت کنید که می تونستیم از class هم استفاده کنیم و هیچ تفاوتی نداشت. بعد از این سراغ کد های جی کوئری میریم. در این آموزش چون کدها کوتاه هستند اونارو درون فایل index می نویسیم. خب من مرحله به مرحله با توضیح ، کدها رو کامل می کنم.
اول از همه ما باید با کدی تعداد عناصر لیست رو در بیاریم که الان این تعداد رو ۳ تعریف کردیم به صورت پیش فرض. برای این کار از کد .size استفاده می کنیم و تعداد عناصر لیست را i می نامیم.

<script type="text/javascript">

        $(function() {

            var i = $('li').size();

        });
    </script>

به این ترتیب کد می فهمد که هم اکنون لیست ما ۳ آیتم دارد و این مقدار را I می نامد. حالا سراغ اضافه کردن آیتم می رویم با این کد :

<script type="text/javascript">

        $(function() {
            var i = $('li').size();

            $('a#add').click(function() {
                $('<li>' + i + '</li>').appendTo('ul');
            });

        });
    </script>

خب ما قصد داریم با زدن بر روی لینک add یک آیتم جدید اضافه کنیم. پس بعد از دستور click ( که با آن آشنا هستید ) می خواهیم مقدار <li>i</li> به انتهای لیست ما اضافه بشه و i مقدار مقدار آخرین آیتم لیست تعریف شده است. appendTo نشان می دهد که لیست ما زیر مجموعه ای از ul است و کد خاصی نیست. حالا با کلیک کردن روی add زیر مقدار ۳ که آخرین آیتم ما در لیست بود دوباره مقدار ۳ اضافه می شود و به همین صورت ادامه پیدا می کند ! پس باید موقع تعریف کردن i مقدار آن را یک عدد افزایش دهیم. برای همین ۱+  را  به فرمول بالا اضافه می کنیم :

    <script type="text/javascript">

        $(function() {
            var i = $('li').size() + 1;

            $('a#add').click(function() {
                $('<li>' + i + '</li>').appendTo('ul');
            });

        });
    </script>

حالا با کلیک بر روی add مقدار ۴ به لیست اضافه می شه چون i را + آخرین مقدار موجور تعریف کردیم ولی وقتی چند بار روی add کلیک کنید پی در پی عدد ۴ اضافه میشه. پس باید انتهای حلقه i را دوباره تعریف کنیم و مقدار آن را یکی اضافه کنیم به این شکل : I = I + 1 .این همان معنی لوپ است که در برنامه نویسی بسیار استفاده می شود. پس فرمول به شکل زیر در می آید :

<script type="text/javascript">

        $(function() {
            var i = $('li').size() + 1;

            $('a#add').click(function() {
                $('<li>' + i + '</li>').appendTo('ul');
                i = i + 1;
            });

        });
    </script>

خب الان کار ما برای اضافه کردن آیتم تمام شد. یک نکته ، در زبان برنامه نویسی I = I + 1 را به این صورت i++ هم می نویسند و هیچ تفاوتی بین این دو نیست.

کم کردن آیتم از انتهای لیست :
خب برای کم کردن کافیه آخرین آیتم لیستمان را مشخص کنیم. برای این کار از دستوری که هفتۀ پیش یاد گرفتیم برای مشخص کردن آخرین آیتم استفاده می کنیم :

$('a#remove').click(function() {
$('li:last').remove();

});

ولی این کد به تنهایی کافی نیست و ایراد دارد. فرض کنید با کلیک بر روی add تا شمارۀ ۳۲ رفته اید و دوباره تا شمارۀ ۳ را با این کد پاک می کنید. اگر دوباره add کنید میبینید سطر چهارم که باید عدد ۴ باشد عدد ۳۳ نمایان می شود ! برای این کار باید بعد از هر با remove کردن I را منهای یک کنیم. پس فرمول به این شکل در می آید :

$('a#remove').click(function() {
$('li:last').remove();
i = i - 1;

});

و در نهایت کل کد را می توانیم به شکل زیر بنویسیم :

<script type="text/javascript">

$(function() {
var i = $('li').size() + 1;

$('a#add').click(function() {
$('<li>' + i + '</li>').appendTo('ul');
i++;
});

$('a#remove').click(function() {
$('li:last').remove();
i--;

});
});
</script>

خب آموزش این جلسه که در ادامۀ جلسۀ پیش بود تمام شد. از جلسات آینده دوباره سراغ افکت های تصویری جی کوئری میریم چون جلسۀ امروز و هفتۀ گذشته ممکنه کمی خسته کننده بوده براتون.

پستهای مرتبط :

آموزش جی کوئری در پانزده روز : روز چهارم

آموزش جی کوئری در پانزده روز : روز سوم

آموزش جی کوئری در پانزده روز : روز دوم

آموزش جی کوئری در پانزده روز : روز اول

مقدمه ای بر آموزش jQuery در ۱۵ روز

برترین و مفیدترین پستهای دیماه

شنبه, ۳ بهمن ۱۳۸۸

برای دومین ماه قصد دارم پستهای مفید در دیماه (از نظر خودم) در جامعه وب فارسی را به خوانندگان عزیز وب سایت اآی تی تی معرفی کنم. قسمت قبل با عکس العمل های مختلفی مواجه شد اما از آنجاییکه اکثر شما عزیزان این حرکت رو مفید دانستید تصمیم گرفتم که این رویه رو ادامه بدم به امید اینکه بتونیم پستهای مفیدی که از دید شما پنهان مانده و یا وبلاگهای جدید و ناشناخته ای را که تازه شروع به کار کرده اند و نیاز به حمایت دارند رو به شما معرفی کنیم و سعس کنیم یک رابطه برنده – برنده بسازیم

ذکر ۳ نکته رو لازم میدونم : اول اینکه ترتیب فوق بر اساس اهمیت موضوع نمیباشد و فقط بر اساس ترتیب فید ها و خوراکها در گودر من میباشد. تقریبا من مشترک ۹۰ درصد این وبلاگها هستم. نکته دوم اینکه این حرکت رو من ابداع نکردم و فکر تازه ای هم نبود و در وبلاگهای انگلیسی زبان این حرکت مرسومی هست که خیلی ها این کار رو میکنند و پستهای برتر و مفید رو سایت خودشون معرفی میکنن. مطمئنن اگر همه وبلاگها از این کارها بکنند جامعه وب فارسی بسیار قویتری رو درآینده خواهیم دید. نکته سوم هم اینکه از تمامی دوستانی که مطالب مفید آنها از چشم من بدور ماند ه عذرخواهی میکنم و خواهش میکنم در قسمت نظرات وبلاک و یا پستهای مفیدی که میشناسید را معرفی نمایید.ممنون

پستهای عمومی :

پستهای تخصصی طراحی و گرافیک و طراحی وب سایت:

پستهای معرفی ابزار و دانلود :

اخبار و مطالب جالب و خواندنی:

معرفی سایتهای جالب و مفید :

وبلاگ نویسی و مهارتها و ابزارهای آن :

مسلما پستهای مفیدی دیگری هم در ماه گذشته در وب منتشر شده است که از چشم من مخفی مانده است. چنانچه شما با یکی از این پستها آشنایی دارید حتما در قسمت نظرات آنها را به ما و بقیه معرفی نمایید.

پستهای مرتبط :

برترین و مفید ترین پستهای آذرماه

آموزش جی کوئری در پانزده روز : روز چهارم

چهارشنبه, ۳۰ دی ۱۳۸۸

سلام، امروز کمی از افکت های جی کوئری فاصله می گیریم و به ویژگی های کاربردی آن می پردازیم. نمایش درس امروز فقط هشتمین عنوان کار امروز را نشان می دهد. با دانلود کرد سورس کد امروز می توانید از عنوان نخست همراه شوید.

امروز چه کار خواهیم کرد :

  1. پیوست یک فایل جاوا اسکریپت بیرونی به فایل اصلی ( Inbox )
  2. تعریف متغیر های css توسط جی کوئری
  3. اضافه کردن  class به تگ دلخواه توسط جی کوئری
  4. برداشتن class از تگ دلخواه توسط جی کوئری
  5. اضافه کردن class به اولین یا آخرین عنوان لیست
  6. اضافه کردن class به عناوین زوج یا فرد لیست
  7. اضافه کردن class به عنوانی خاص
  8. اضافه کردن class به عنوانی که title خاصی دارد ( مهم )

پیوست یک فایل جاوا اسکریپت بیرونی به فایل اصلی ( Inbox ) :

خب برای تمرین هم که شده امروز می خواهیم دستورات جی کوئری رو در فایل خاص خودش بنویسیم و بعداً فقط در فایل ایندکس آدرس فایل را بدهیم – دقیقاً مانند کاری که با فایل CSS کردیم – بنابر این فایلی با پسوند .js به نام Scripts می سازیم و دستورات جی کوئری را درون آن مینویسیم سپس فایل را درون فولدری که فایل ایندکس درون آن قرار دارد می گذاریم و در فایل ایندکس آدرس فایل Script.js را مشخص می کنیم.
<p align="right"><script src="scripts.js" type="text/javascript"></script></p>

تعریف متغیر های css توسط جی کوئری :
ابتدا در فایل Index یک لیست به ترتیب اعداد از یک تا سی و دو درست می کنیم. به این ترتیب :

<body>
<ul>
<li>list 0</li>
<li>list 1</li>
<li>list 2</li>
<li>list 3</li>
<li>list 4</li>
<li>list 5</li>
<li>list 6</li>
<li>list 7</li>
<li>list 8</li>
<li>list 9</li>
<li>list 10</li>
<li>list 11</li>
<li>list 12</li>
<li>list 13</li>
<li>list 14</li>
<li>list 15</li>
<li>list 16</li>
<li>list 17</li>
<li>list 18</li>
<li>list 19</li>
<li>list 20</li>
<li>list 21</li>
<li>list 22</li>
<li>list 23</li>
<li>list 24</li>
<li>list 25</li>
<li>list 26</li>
<li>list 27</li>
<li>list 28</li>
<li>list 29</li>
<li>list 31</li>
<li>list 32</li>
</ul>
</body>

حال فایل Script.js را باز کنید و دستور زیر را درون آن قرار می دهید:

$(function() {
    $('li').css('color' , "red");
});

با این کد شما برای تگ li توسط دستور css رنگ قرمز را انتخاب می کنید و اگر صفحۀ ایندکس را با مرورگر عزیز فایرفاکس نگاه کنید خواهید دید که یک لیست سی و دو تایی قرمز دارید.

اضافه کردن class به تگ دلخواه توسط جی کوئری :

برای اینکار یک فایل css جدید به نام defult.css می سازیم و به فایل Index پیوست می کنیم. ( دقیقاً مانند فایل script.js ) :

<link href="default.css" rel="stylesheet" type="text/css" />

فایل css را باز کرده و یک class به نام alert ایجاد می کنیم و رنگ آن را آبی قرار می دهیم :

.alert
{
	color: blue;
}

سپس فایل script.js را باز می کنیم و کدهای قبلی را پاک کرده و کدهای زیر را جایگزین می کنیم :

$(function() {
    $('li').addClass('alert');
});

به این ترتیب با دستور addClass شما به تگ li کلاس جدیدی اضافه کردید ! و لیست سی و دوتایی طبق کلاسی که در css نوشتید به رنگ آبی در میاد. مثلاً اگر در کد بالا به جای alert بنویسید aaa و در فایل css کلاس aaa را سبز تعریف کنید لیست به رنگ سبز در می آید.

برداشتن class از تگ دلخواه توسط جی کوئری :

کافیست به جای addClass از removeClass استفاده کنید تا لیست به رنگ پیشفرض که همیشه مشکی است تبدیل شود :

$(function() {
    $('li').removeClass('alert');
});

اضافه کردن class به اولین یا آخرین عنوان لیست :
برای اضافه کردن class به اولین پست از این کد :

$(function() {
    $('li:first').addClass('alert');
});

و برای اضافه کردن class به آخرین پست از این کد استفده می کنیم :

$(function() {
    $('li:last').addClass('alert');
});

اضافه کردن class به عناوین زوج یا فرد لیست :
برای اضافه کردن class به عناوین زوج از این کد :

$(function() {
    $('li:even').addClass('alert');
});

و برای اضافه کردن class به عناوین فرد از این کد استفده می کنیم :

$(function() {
    $('li:odd').addClass('alert');
});

دوستان دقت کنید که عنوان اول برای کدهای همیشه صفر تعیین می شود ! من برای راحت شدن درک مطلب اسم عنوان اول را List 0 گذاشتم. ولی اسم اصلاً مهم نیست، عنوان اول همیشه صفر و زوج است.

اضافه کردن class به عنوانی خاص :
فرض کنید می خواهید شانزدهمین عنوان لیست دارای class شود. با دانش به اینکه صفر همیشه مقدار اول است از کد زیر استفاده می کنیم. به این ترتیب فقط عنوان پنجم – با احتساب صفر – آبی می شود.

$(function() {
    $('li:eq(4)').addClass('alert');
});

اضافه کردن class به عنوانی که title دارد :
فرض کنید از بین عناوین لیست شما که بعضی از آنها لینک هستند و تمام لینکهای از title برخوردارند شما می خواهید لینکی که دارای title خاصی است دارای class باشد ! بیایید کمی فایل Index را تغییر دهیم :

<body>
<ul>
<li><a href="#" title="Hi !">list 0</a></li>
<li>list 1</li>
<li>list 2</li>
<li>list 3</li>
<li><a href="#" title="Hi !">list 4</a></li>
<li>list 5</li>
<li>list 6</li>
<li>list 7</li>
<li>list 8</li>
<li>list 9</li>
<li>list 10</li>
<li><a href="#" title="Hi !">list 11</a></li>
<li>list 12</li>
<li>list 13</li>
<li>list 14</li>
<li>list 15</li>
<li>list 16</li>
<li><a href="#" title="Hi !">list 17</a></li>
<li>list 18</li>
<li>list 19</li>
<li>list 20</li>
<li>list 21</li>
<li>list 22</li>
<li><a href="#" title="Hi !">list 23</a></li>
<li>list 24</li>
<li>list 25</li>
<li>list 26</li>
<li>list 27</li>
<li><a href="#" title="Hi !">list 28</a></li>
<li>list 29</li>
<li>list 31</li>
<li><a href="#" title="byebye">list 32</a></li>
</ul>
</body>

فرض کنید می خواهیم لینکی که title آن byebye است را دارای class کنیم ! برای این کار کافیست در فایل script.js این کد را قرار دهید :

$(function() {
    $('li a[title=byebye]').addClass('alert');
});

خب آموزش امروز کمی طولانی و خسته کننده بود ولی برای آموزش هفتۀ آینده لازم بود. هفتۀ آینده یاد میگیریم که چگونه با زدن یک دکمه عنوانی به لیست اضافه یا کم کنیم …

پستهای مرتبط :

آموزش جی کوئری در پانزده روز : روز سوم

آموزش جی کوئری در پانزده روز : روز دوم

آموزش جی کوئری در پانزده روز : روز اول

مقدمه ای بر آموزش jQuery در ۱۵ روز