Ок, я должен упустить что-то глупое здесь, но я потерял, почему это не работает
$('#fleet').hover(function(){
var fleet = '2';
$("#fleetHover").show();
$("#fleet").animate({ "height": '+=' + (fleet * 30) + 'px' }, "slow");
}, function(){
$("#fleetHover").hide();
$("#fleet").animate({ "height": '-=' + (fleet * 30) + 'px' }, "slow");
});
Когда я нахожу элемент, он увеличивает высоту, которая мне нужна. Но когда я выхожу, он не возвращается.
Но если я делаю это с высотой как значением, а не с переменной, она работает.
$('#fleet').hover(function(){
var fleet = '2';
$("#fleetHover").show();
$("#fleet").animate({ "height": '+=' + (fleet * 30) + 'px' }, "slow");
}, function(){
$("#fleetHover").hide();
$("#fleet").animate({ "height": "-=60px" }, "slow");
});
Что мне здесь не хватает? Я медленно изучаю материал JS/jQuery, может ли переменная не использоваться более одного раза?
Любая помощь будет замечательной!
Переменная вашего fleet
определена внутри и привязана к первой анонимной функции. Он недоступен для второй анонимной функции. Одним из решений было бы определить переменную вне обеих функций:
var fleet = '2';
$('#fleet').hover(function(){
$("#fleetHover").show();
$("#fleet").animate({ "height": '+=' + (fleet * 30) + 'px' }, "slow");
}, function(){
$("#fleetHover").hide();
$("#fleet").animate({ "height": '-=' + (fleet * 30) + 'px' }, "slow");
});
Я удалю этот ответ, если вы не хотите эту опцию.
Просто используйте анимацию CSS3 с состояниями наведения CSS.
.grow {
height: 140px;
width: 40px;
position: absolute;
text-align: center;
bottom: 0;
left: 100px;
background: mediumSeaGreen;
-webkit-transition: all .3s ease;
-moz-transition: all .3s ease;
-ms-transition: all .3s ease;
-o-transition: all .3s ease;
}
.grow:hover {
height: 200px;
}