PDA

View Full Version : مبتدی: مشکل در طراحی زیر منوها



hamed_hossani
جمعه 03 آذر 1391, 09:53 صبح
سلام
من یک منو با css ساختم
می خوام وقتی کلیک رو ایتمی کردم باز بمونه
http://upcity.ir/images/72003919686962157997.gif
من برای قسمت اضافه و ویرایش منو می خوام استفاده کنم.

سوال:
چه کدی بنویسم که هنگام کلیک باز بمونه مثله زمانی که hover میشه>؟
با سپاس!

mrgraphy
جمعه 03 آذر 1391, 13:58 عصر
سلام دوست عزیز.
این کار رو باید با JAVASCRIPT یا jquery انجام بدید.
به این صورت که وقتی روی منوی مادر کلیک شد منوی child دارای مقدار display:block بشه.
تا کدتون رو نبینم بیش از این نمیشه توضیح داد.
موفق باشید.

hamed_hossani
جمعه 03 آذر 1391, 15:14 عصر
کد html

<div class="menuContent"><ul><li> <a class="item" href="#" iditem="12" title="video">نماها</a><ul><li> <a class="item" href="#" iditem="14" title="ویدیو ها">جنگ تحمیلی</a><ul><li> <a class="item" href="#" iditem="29" title="">ایت الله قمfgfgی</a><ul><li> <a class="item" href="#" iditem="30" isleaf="true" style="color:green;background:white;" title="">ایت الله قمی</a></li></ul></li></ul></li></ul></li></ul><ul><li> <a class="item" href="#" iditem="13" title="صوتی">نواها</a><ul><li> <a class="item" href="#" iditem="21" title="سال 1391">سخنرانی ها</a><ul><li> <a class="item" href="#" iditem="28" isleaf="true" style="color:green;background:white;" title="">ایت الله قمی</a></li></ul></li></ul></li></ul><ul><li> <a class="item" href="#" iditem="20" isleaf="true" style="color:green;background:white;" title="fh">یای</a></li></ul></div>
کد html

.menuContent
{
direction:rtl;
float: none;
padding: 0px;
margin:0px;
height:25px;
font-family:tahoma;
width:100%;
text-align:center;
}

.menuContent ul li{
float:right;
padding-top: 0px;
padding-right: 10px;
padding-bottom: 0px;
padding-left:10px;

position:relative;

height:25px;
list-style-type: none;
border-left-width: 1px;
border-right-style: ridge;
}
.menuContent ul li ul{
list-style-type: none;
border: 1px solid #000;
padding-top: 0px;
padding-right: 2px;
padding-bottom: 1px;
padding-left:2px;
background-color: #CCC;
float: none;
position: absolute;
top: 24px;
right:0px;

display:none;
}
.menuContent ul li ul li{

float: none;
margin: 0px;
padding-top: 0px;
padding-right: 10px;
padding-bottom: 0px;
padding-left:10px;
position:relative;
width:100px;
}
.menuContent ul li ul li ul{
position:absolute;
right:118px;
top:0px;
padding:0px;
margin:0px;
display:none;
}
.menuContent ul li ul li ul li{
float: none;
margin: 0px;
padding-top: 0px;
padding-right: 10px;
padding-bottom: 0px;
padding-left:10px;
position:relative;

}

.menuContent ul li:hover ul li ul,
.menuContent ul li ul li:hover ul li ul,
.menuContent ul li ul li ul li:hover ul li ul,
.menuContent ul li ul li ul li ul li:hover ul li ul,
.menuContent ul li ul li ul li ul li ul li:hover ul li ul
{
display: none;
}

.menuContent ul li:hover ul,
.menuContent ul li ul li:hover ul,
.menuContent ul li ul li ul li:hover ul,
.menuContent ul li ul li ul li ul li:hover ul
{
display: block;
}


.menuContent li a
{
text-decoration: none;
font-family:Tahoma;
font-size:small;
}
.menuContent ul li:hover {
background-color: #FCF;
background-color:Gray;
border: 1px solid #000;
margin-right: 1px;
margin-left: 1px;
}

hamiii
جمعه 03 آذر 1391, 18:36 عصر
در جاوا اسکریپت از رویداد onclick و در جی کوئری از رویداد click باید استفاده کنید.
به این صورت که در صورت کلیک یک استایل خاص (مثلا display:block) روی عنصر مورد نظرتون اعمال بشه یا اینکه از یک افکت جی گوئری (مانند slideDown) استفاده کنید.اگر در این زمینه اطلاعات زیادی ندارید بهتره از یه اسکریپت آماده استفاده کنید و اونو مطابق با استایل خودتون سبک دهی کنید.
البته پیشنهاد من اینه که حتی اگه با جاوااسکریپت آشنایی ندارید یه مطالعه جزیی در مورد جی کوئری داشته باشید خیلی زود راه میوفتین و میتونید کدهای مشابه این مثال رو براحتی خودتون بنویسید.
یاعلی

hamed_hossani
شنبه 04 آذر 1391, 15:14 عصر
با سپاس
من می خوام وقتی باز شد و زیر منو هاشو نشون داد وقتی کلیک می کنم همچنان باز بمونه!تا ان سلسه مرتبه ای که اومدم. الانم تمام زیر منو ها باز میشه و مشکلی نداره!
فقط می خام باز بمونه! که برای کار بر محسوس باشه موضوع رو به کجا می خاذ اضافه کنه!
با سپاس

hamed_hossani
شنبه 11 آذر 1391, 10:59 صبح
با hover نشان داده بشه و با click کردن همچنان باز بمونه
http://upcity.ir/images/72003919686962157997.gif
که کاربر بدونه زیر منو رو به کجا می خاد اضافه کنه!

Saber Mogaddas
شنبه 11 آذر 1391, 13:23 عصر
سلام
برای این کار می تونید توسط jquery به این صورت addclass یا removeclass انجام بدید :

$(function() {

$('label').on('click hover', function(event) {
if (event.type == 'click') {
$(this).toggleClass("clicked");
}
$('label').removeClass("active");
$(this).addClass("active");
});

});

برای نمونه .. (http://jsfiddle.net/jtbowden/sqvDy/)
منبع (http://api.jquery.com/bind/)
کافیه استایل هاتون رو برای addclass و removeclass تنظیم کنید.

این سوال به jquery ربط داره به تالار jquery انتقال میدم تا دوستان نیز نظرات خودشون رو مطرح کنن.

موفق باشید.

محسن شامحمدی
شنبه 11 آذر 1391, 13:45 عصر
البته با css هم امکانش هست.. و اجباری به کدنویسی جاوااسکریپت نیست.
می تونید ضمیمه رو ببینید

hamed_hossani
شنبه 11 آذر 1391, 15:22 عصر
سوال من به صورت بر خط
http://jsfiddle.net/Yjk4A/
با سپاس فراوان
:خجالت:

hamed_hossani
یک شنبه 12 آذر 1391, 19:05 عصر
اخرین تغییرات اعمال شده
http://jsfiddle.net/ey5Jp/
قسمتی از کار درسته :کف:ولی برای می خوام بی نهایت باشه:متعجب:
:متفکر: ؟