jQuery анимирует цвет границы при наведении? - PullRequest
17 голосов
/ 02 мая 2009

Использование цветового плагина для анимации цвета фона при наведении.

$(function() {
    $('.listing-2 li a').mouseover(function() {
        $(this).animate({
            backgroundColor: "#0e7796"
        }, 'fast');
    });
    $('.listing-2 li a').mouseout(function() {
        $(this).animate({
            backgroundColor: "#d6f2c5"
        }, 'fast');
    });
});

Как я могу сделать то же самое для цвета границы?

Ответы [ 7 ]

36 голосов
/ 02 мая 2009

Найдено в Google

    $('.listing-2 li a').mouseover(function() {
    $(this).animate({ borderTopColor: "#0e7796" }, 'fast');
});
$('.listing-2 li a').mouseout(function() {
    $(this).animate({ borderTopColor: "#fff" }, 'fast');
});

это должен быть "borderTopColor" (или left, right, bottom) вместо "borderColor".

14 голосов
/ 20 июля 2010

Для анимации цвета всей границы используйте:

$(this).animate({ borderTopColor: '#59b4de', borderLeftColor: '#59b4de', borderRightColor: '#59b4de', borderBottomColor: '#59b4de' }, 'fast');

Видимо, вам нужно указать их все.

5 голосов
/ 27 февраля 2013

У меня была похожая проблема. У меня явно не было файла jQuery-UI, прикрепленного к моему документу. Однажды я прикрепил это. Все отлично работает с ответом С. Спенсера.

<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/jquery-ui.min.js"></script>
5 голосов
/ 13 февраля 2012

это тоже работает.

$("div.item").hover(function() {
    $(this).stop().animate({"border-color": "#999999"}, "slow");
},
function() {
    $(this).stop().animate({"border-color": "#BFBFBF"}, "slow");
});
0 голосов
/ 18 февраля 2016

В качестве альтернативы решениям jQuery вы также можете анимировать цвет границы с помощью CSS-переходов. Поскольку вы анимируете background-color с помощью fast, вам нужно использовать переход 200ms.

Ваш случай

.listing-2 li {
    border:1px solid #d6f2c5;
    transition: border 200ms ease-in-out;
}

.listing-2 li a:hover {
    border:1px solid #0e7796;
}

Общий пример

body {
  display: flex;
  justify-content: center;
}
.container {
  width: 50px;
  height: 50px;
  border: 1px solid #d6f2c5;
  transition: border 200ms ease-in-out;
}
.container:hover {
  border: 1px solid #0e7796;
}
<div class="container"></div>
0 голосов
/ 28 мая 2014

jQuery animate принимает только числовые значения. Смотрите [документы]: http://api.jquery.com/animate/

Вы можете использовать плагин jQuery.Color или использовать пользовательский интерфейс jQuery, который расширяет animate и позволяет использовать нечисловые значения в animate.

Наслаждайтесь

0 голосов
/ 28 сентября 2010

Вы можете попробовать это:

$(this).animate({border: "3px solid #FFF55B"}, 100);         
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...