Я немного поиграл с этим и получил, как мне кажется, правильный результат, основанный на том, что вы пытаетесь сделать.Я также сделал функции expandMenu()
и collapseMenu()
jQuery, чтобы можно было легко расширять / сворачивать, используя $(this).expandMenu();
.Для демонстрации я также добавил вызов collapseMenu()
к привязке click()
, чтобы при щелчке по затраченному элементу он разрушался.
Рабочий образец: http://jsfiddle.net/sqCN5/4/
Обновлен CSS
span{
position: absolute;
}
.box1{
width:40px;
height:13px;
float:left;
font-size:.6em;
color:#fff;
background:#99CC00;
font-family:Arial, Helvetica, sans-serif;
}
.box2{
top:25px;
width:40px;
height:auto;
font-size:.6em;
color:#fff;
background:#FF6600;
font-family:Arial, Helvetica, sans-serif;
margin-top:1px;
opacity:.8;
filter: alpha(opacity=75);
}
Обновлен JS
$('span').hover(function() {
$(this).expandMenu();
}, function() {
$(this).collapseMenu();
}).click(function(){
$(this).collapseMenu();
});
$.fn.collapseMenu= function() {
$(this)
.stop()
.css({
'border': '0px'
})
.fadeIn('slow')
.animate({
width: '40px',
height: '13px',
padding: '0px'
}, 700,'swing', function(){
$(this).css({'z-index': '0'});
});
return ($(this));
};
$.fn.expandMenu= function() {
$(this)
.stop()
.css({
'z-index': '999999',
'border' : '1px solid #000'
})
.animate({
width: '200px',
height: '125px',
padding: '0px'
}, 700, 'swing');
return ($(this));
};