PDA

View Full Version : منوهای خاص



mahdi.iqu
چهارشنبه 14 فروردین 1392, 08:20 صبح
سلام تو خیلی از سایت ها دیدم منوهای خاصی دارند
منظورم این هست تا وقتی روشون کلیک نکنی باز نمیشند
نمونه این منو ها رو تو این سایت دیدم:
آدرس سایت (http://www.joomina.ir/)
ممنون میشم اگر کسی در این رابطه تجربه ای داره به ما هم یاد بده

Jarvis
چهارشنبه 14 فروردین 1392, 14:29 عصر
CSS ــه استفاده شده در این منو ها از کتابخانه ی Bootstrap گرفته شده...
برای ساختشون هم از JQuery استفاده شده ...
شما با JQuery می تونید منوهای بهتر از این رو هم بسازید...

ایام به کام - موفق باشید

mahdi.iqu
چهارشنبه 14 فروردین 1392, 15:03 عصر
تشکر
میتونید کمکم کنید تا منم بتونم عین این رو بسازم؟
خواهش میکنم
نمونه خارجی نداره؟
کمک کنید

2undercover
چهارشنبه 14 فروردین 1392, 19:37 عصر
اینو براتون نوشتم!هر کجاشو که نفهمیدین بگین براتون توضیح میدم(ببخشید یک مشکلی داشت الان درستش کردم!):

dr.undead
چهارشنبه 14 فروردین 1392, 23:06 عصر
این سایتم میتونه خیلی کمکت کنه
http://www.codepen.io/

mahdi.iqu
پنج شنبه 15 فروردین 1392, 12:34 عصر
میشه یکم رو کد هاتون توضیح بدید؟
دوست من undead (http://barnamenevis.org/member.php?266554-dr.undead) این سایت چی هست؟

2undercover
پنج شنبه 15 فروردین 1392, 15:42 عصر
اینم توضیحات:

$('#Menu > li').click(function(){});


توی این قسمت که واضحه می خوایم هر وقت روی اون تگ li که توی #Menu هست کلیک شد دستورات بعدی اجرا بشه!


if($(this).attr('class')=='Active')


برای مشخص کردن این که کدوم لیست باز شده به اون li که الان بازه کلاس Active رو میدیم و اینجا چک می کنیم ببینیم که لیست باز شده یا بسته است!


$(this).children().hide();
$(this).removeClass('Active');


این دستورات در صورتی اجرا میشه که شرط بالا صحیح باشه یعنی لیست باز بوده پس باید بسته بشه که تابع children تمام تگ های زیر مجموعه ی اون li که روش کلیک شده رو بر می گردونه و تابع hide هم همه ی اون هارو مخفی یا محو می کنه! بعد هم با تابع removeClass اون کلاس Active که رو که مال لیست باز هست رو حذف می کنیم چون لیست بسته شده!


$('#Menu > li').removeClass('Active');
$('#Menu > li').children().hide();
$(this).addClass('Active');
$(this).children().show();


خوب این کد ها هم اگر شرط اشتباه بود اجرا میشن یعنی لیستی که روش کلیک شده بسته بوده و باید باز بشه!

تو دو خط اول هر چی لیست بوده رو می بندیم و کلاس های Active تمام لیست های رو حذف می کنیم!(تو خط های قبلی چگونگیش رو توضیح دادم!)

خوب چون لیست می خواد باز بشه پس باید کلاس Active رو به لیستی که روش کلیک شده اضافه می کنیم با تابع addClass!

در خط چهارم همه ی تگ های زیرمجموعه اون لیستی که روش کلیک شده رو با تابع show به نمایش در میاریم!

این توضیحات کد های JQuery اگر توی استایل های CSS مشکلی داشتید بگید تا اون هارو هم توضیح بدم؟!

dr.undead
پنج شنبه 15 فروردین 1392, 15:57 عصر
میشه یکم رو کد هاتون توضیح بدید؟
دوست من undead (http://barnamenevis.org/member.php?266554-dr.undead) این سایت چی هست؟
یه سایت پر محتوا از مثال های css jquery به همراه demo و کدها

bitcob589
پنج شنبه 15 فروردین 1392, 16:09 عصر
اینم توضیحات:

$('#Menu > li').click(function(){});


توی این قسمت که واضحه می خوایم هر وقت روی اون تگ li که توی #Menu هست کلیک شد دستورات بعدی اجرا بشه!


if($(this).attr('class')=='Active')


برای مشخص کردن این که کدوم لیست باز شده به اون li که الان بازه کلاس Active رو میدیم و اینجا چک می کنیم ببینیم که لیست باز شده یا بسته است!


$(this).children().hide();
$(this).removeClass('Active');


این دستورات در صورتی اجرا میشه که شرط بالا صحیح باشه یعنی لیست باز بوده پس باید بسته بشه که تابع children تمام تگ های زیر مجموعه ی اون li که روش کلیک شده رو بر می گردونه و تابع hide هم همه ی اون هارو مخفی یا محو می کنه! بعد هم با تابع removeClass اون کلاس Active که رو که مال لیست باز هست رو حذف می کنیم چون لیست بسته شده!


$('#Menu > li').removeClass('Active');
$('#Menu > li').children().hide();
$(this).addClass('Active');
$(this).children().show();


خوب این کد ها هم اگر شرط اشتباه بود اجرا میشن یعنی لیستی که روش کلیک شده بسته بوده و باید باز بشه!

تو دو خط اول هر چی لیست بوده رو می بندیم و کلاس های Active تمام لیست های رو حذف می کنیم!(تو خط های قبلی چگونگیش رو توضیح دادم!)

خوب چون لیست می خواد باز بشه پس باید کلاس Active رو به لیستی که روش کلیک شده اضافه می کنیم با تابع addClass!

در خط چهارم همه ی تگ های زیرمجموعه اون لیستی که روش کلیک شده رو با تابع show به نمایش در میاریم!

این توضیحات کد های JQuery اگر توی استایل های CSS مشکلی داشتید بگید تا اون هارو هم توضیح بدم؟!

اگر امکان دارد سمپل بگذارید

2undercover
پنج شنبه 15 فروردین 1392, 17:00 عصر
توی پست پنجم کل فایل هارو کامل ضمیمه کردم!

bitcob589
پنج شنبه 15 فروردین 1392, 17:03 عصر
توی پست پنجم کل فایل هارو کامل ضمیمه کردم!

ظاهر سورس php است اگر امکان دارد با asp.net یا html بگذارید

2undercover
پنج شنبه 15 فروردین 1392, 17:11 عصر
شرمنده موقع نوشتن حواسم نبود با فرمت php ذخیره کردم و گرنه کد php نداره توش! شما دستی فرمتشو به html تغییر بده!

bitcob589
پنج شنبه 15 فروردین 1392, 17:26 عصر
در سمپل همه لیستها باز هستند و امکان بسته شدن لیستها وجود ندارد

2undercover
پنج شنبه 15 فروردین 1392, 18:36 عصر
من روی Opera و Chrome تست کردم مشکلی نداشت!

احتمالا از IE استفاده کردید!

mahdi.iqu
پنج شنبه 15 فروردین 1392, 21:16 عصر
من هم تست کردم
بسته نمیشند با فایر فاکس هم تست کردم

2undercover
پنج شنبه 15 فروردین 1392, 22:09 عصر
برای بسته شدن باید دوباره روی لیست کلیک کنید!احتمالا شما توی نقاط خالی صفحه کلیک می کنید!برای اینکه اگه توی نقاط دیگه صفحه کلیک شد منو بسته بشه باید یک چند خط کد دیگه اضافه کرد!

mahdi.iqu
جمعه 16 فروردین 1392, 00:17 صبح
نه والا رو هر جا کلیک میشه بسته نمیشه حتی رو خود منو

mahdi.iqu
پنج شنبه 22 فروردین 1392, 16:40 عصر
میشه مجدد بررسی کنید؟

2undercover
پنج شنبه 22 فروردین 1392, 21:37 عصر
با بقیه مرورگر ها هم امتحان کردین؟نمی دونم آخه روی سیستم خودم جواب میده؟!:متفکر::متفکر::متفکر:

2undercover
جمعه 23 فروردین 1392, 07:38 صبح
خودم الان با Firefox 20 امتحان کردم درست کار می کرد!

mahdi.iqu
جمعه 06 اردیبهشت 1392, 22:05 عصر
با همه مرورگر ها همین مشکل هست@!

2undercover
شنبه 07 اردیبهشت 1392, 20:57 عصر
باید درست شده باشه دیگه:

mahdi.iqu
چهارشنبه 11 اردیبهشت 1392, 07:17 صبح
این هم همون مشکل رو داره.
فقط رو منو کلیک کنیم بسته میشه

2undercover
چهارشنبه 11 اردیبهشت 1392, 14:54 عصر
عجب مشکلیه! من اینو امتحان کردم هر جا به غیر از منوی باز کلیک بشه بسته میشه: