Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Выпадающая кнопка по типу facebook'a (https://javascript.ru/forum/jquery/15732-vypadayushhaya-knopka-po-tipu-facebook%27.html)

Santiago 11.03.2011 01:45

Выпадающая кнопка по типу facebook'a
 
Вложений: 3
Вот принялся делать выпадающую кнопку, подобно как на facebook'е “Account”. Это первый мой опыт, и как следовало ожидать, столкнулся с рядом проблем. Надеюсь на Вашу помощь!

Проблемы:
- Не могу избавиться от выделения на кнопке после клика мыши т.е. отменить a:hover, именно этой кнопки, после клика
- Установить другой цвет шрифта после клика мыши
- Чтобы меню закрывалось после клика мыши вне области подменю.
- Убрать странные явления в explorer'е (после нажатия на кнопку вместе с подменю «тянется» header)
- и можно как-нибудь объединить кнопку и подъменю?! (я думаю, что мой вариант с применением “margin” не самый лучший)
- и как сделать окантовку всего этого блока, как в facebook'e?

Вот мои скрипты:

HTML:
<ul id="navigation">
    <li><a href="profile.php">Profile</a></li>
    <li><a href="">Messages</a></li>
    <li><a href="search.php">Search</a></li>
    <li><a href="" class="menu_head">Settings</a></li>
        <ul class="menu_body">
            <div class="settingsChange">You can change your:</div>
            <li><a href="settings_personal.php">Personal</a></li>
            <li><a href="settings_photo.php">Photo</a></li>
            <li><a href="settings_password.php">Password</a></li>
            <li><a href="settings_email.php">E-mail</a></li>
        </ul>
  </ul>


jQuery:
$(document).ready(function () {
    $('.menu_head').click(function(){
	$('.menu_head').toggleClass('menuHeadWhite');
    $('.menu_body').toggle();
    return false
    });
    });


CSS:
#navigation {
	text-align: right;  
	font-weight: bold; 
	font-size: small;
	float:right;
	width:auto;
	margin: 18px 130px 0 0;
	height:30px;
} 
#navigation li {
	line-height: 30px;
	font-size: 12px;
	font-family: Arial, Helvetica, sans-serif;
	display: inline; 
	list-style-type: none; 
}
#navigation a {
	color: #FFF;
	text-decoration: none; 
	letter-spacing: 1px;
	padding:10px;
}
#navigation a:hover  {
	background-color:#5959b0;
    outline-style: none;
    outline-width: medium;
	}
ul, li{
	margin-top:2px; 
	padding:0; 
	list-style:none; 
}
.menu_body {
	margin-left:167px;
	text-align:left;
	background: #FFF;
	display:none; 
	width:144px;
	border-right:1px solid #998675;
	border-bottom:1px solid #998675;
	border-left:1px solid #998675;
}
#navigation .menu_body li {
	line-height: 5px;
	font-size: 10px;
	font-family: Arial, Helvetica, sans-serif; 
}
#navigation .menu_body a{
	color:#66c; 
	text-decoration:none; 
	padding:10px; 
	display:block;
}
#navigation .menu_body a:hover  {
	color:#FFF;
	background-color: #66c;
    outline-style: none;
    outline-width: medium;
}
.menuHeadWhite {
	background-color: #FFF;
	}
.settingsChange { 
	font-size: 10px;
	font-family: Arial, Helvetica, sans-serif;
	color:#999999;
	padding:10px;
	width:auto;
	}


Часовой пояс GMT +3, время: 22:38.