jQuery Анимация высоты при переключении при наведении

0

Ок, я должен упустить что-то глупое здесь, но я потерял, почему это не работает

    $('#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, может ли переменная не использоваться более одного раза?

Любая помощь будет замечательной!

2 ответа

3
Лучший ответ

Переменная вашего 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");
});
  • 0
    Эххххххх, я идиот ... тот маленький jQuery, который я знаю, это один из них, спасибо за то, что указал на очевидную вещь, с которой я выглядел, теперь отлично работает!
  • 0
    Я бы предложил превратить это в функцию, или эту переменную можно будет использовать в файле скрипта. Обратитесь к редактированию, которое я сделал.
1

Я удалю этот ответ, если вы не хотите эту опцию.

Просто используйте анимацию 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;
}

jsfiddle

  • 0
    Поверьте мне, я хотел бы использовать CSS для этого, но мне нужна переменная, передаваемая мне для высоты из Java-приложения, и я не знаю, с чего начать с взятия Java-объекта и помещения его в CSS
  • 0
    Ааа я понимаю! Что ж, я рад, что вы нашли ответ и удачи, приятель, если вы хотите, чтобы я удалил свой ответ, не стесняйтесь, дайте мне знать.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню